From ca0dca35cefe88292f6d3a9ecf23df59e6441f6a Mon Sep 17 00:00:00 2001 From: YuJian920 Date: Tue, 29 Mar 2022 23:45:56 +0800 Subject: [PATCH] vault backup: 2022-03-29 23:45:56 --- .obsidian/app.json | 6 + .obsidian/appearance.json | 3 + .obsidian/community-plugins.json | 3 + .obsidian/core-plugins.json | 15 + .obsidian/graph.json | 22 + .obsidian/hotkeys.json | 1 + .obsidian/plugins/obsidian-git/data.json | 20 + .obsidian/plugins/obsidian-git/main.js | 14676 ++++++++++++++++ .obsidian/plugins/obsidian-git/manifest.json | 8 + .obsidian/plugins/obsidian-git/styles.css | 413 + .obsidian/workspace | 20 +- 随时随地/Images/useCallback.png | Bin 0 -> 277474 bytes 随时随地/Images/useMemo.png | Bin 0 -> 303279 bytes 随时随地/useEffect 和 Debounce.md | 3 + .../简单的 React 思考 - useCallback.md | 1 - ... React 思考 - useCallback和useMemo.md | 29 + .../简单的 React 思考 - useMemo.md | 1 - 17 files changed, 15209 insertions(+), 12 deletions(-) create mode 100644 .obsidian/app.json create mode 100644 .obsidian/appearance.json create mode 100644 .obsidian/community-plugins.json create mode 100644 .obsidian/core-plugins.json create mode 100644 .obsidian/graph.json create mode 100644 .obsidian/hotkeys.json create mode 100644 .obsidian/plugins/obsidian-git/data.json create mode 100644 .obsidian/plugins/obsidian-git/main.js create mode 100644 .obsidian/plugins/obsidian-git/manifest.json create mode 100644 .obsidian/plugins/obsidian-git/styles.css create mode 100644 随时随地/Images/useCallback.png create mode 100644 随时随地/Images/useMemo.png delete mode 100644 随时随地/简单的 React 思考 - useCallback.md create mode 100644 随时随地/简单的 React 思考 - useCallback和useMemo.md delete mode 100644 随时随地/简单的 React 思考 - useMemo.md diff --git a/.obsidian/app.json b/.obsidian/app.json new file mode 100644 index 0000000..286a136 --- /dev/null +++ b/.obsidian/app.json @@ -0,0 +1,6 @@ +{ + "legacyEditor": false, + "livePreview": true, + "promptDelete": false, + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json new file mode 100644 index 0000000..990f337 --- /dev/null +++ b/.obsidian/appearance.json @@ -0,0 +1,3 @@ +{ + "baseFontSize": 16 +} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json new file mode 100644 index 0000000..d3f66fa --- /dev/null +++ b/.obsidian/community-plugins.json @@ -0,0 +1,3 @@ +[ + "obsidian-git" +] \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json new file mode 100644 index 0000000..ab1d511 --- /dev/null +++ b/.obsidian/core-plugins.json @@ -0,0 +1,15 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "page-preview", + "note-composer", + "command-palette", + "editor-status", + "markdown-importer", + "word-count", + "open-with-default-app", + "file-recovery" +] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json new file mode 100644 index 0000000..e21a18d --- /dev/null +++ b/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 1, + "close": false +} \ No newline at end of file diff --git a/.obsidian/hotkeys.json b/.obsidian/hotkeys.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.obsidian/hotkeys.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json new file mode 100644 index 0000000..4184f2e --- /dev/null +++ b/.obsidian/plugins/obsidian-git/data.json @@ -0,0 +1,20 @@ +{ + "commitMessage": "vault backup: {{date}}", + "autoCommitMessage": "vault backup: {{date}}", + "commitDateFormat": "YYYY-MM-DD HH:mm:ss", + "autoSaveInterval": 1, + "autoPullInterval": 0, + "autoPullOnBoot": false, + "disablePush": false, + "pullBeforePush": true, + "disablePopups": false, + "listChangedFilesInMessageBody": false, + "showStatusBar": true, + "updateSubmodules": false, + "syncMethod": "merge", + "gitPath": "", + "customMessageOnAutoBackup": false, + "autoBackupAfterFileChange": false, + "treeStructure": false, + "refreshSourceControl": true +} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js new file mode 100644 index 0000000..2d65000 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/main.js @@ -0,0 +1,14676 @@ +/* +THIS IS A GENERATED/BUNDLED FILE BY ESBUILD +if you want to view the source visit the plugins github repository (https://github.com/phibr0/obsidian-dictionary) +*/ + +var __create = Object.create; +var __defProp = Object.defineProperty; +var __defProps = Object.defineProperties; +var __getOwnPropDesc = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs = Object.getOwnPropertyDescriptors; +var __getOwnPropNames = Object.getOwnPropertyNames; +var __getOwnPropSymbols = Object.getOwnPropertySymbols; +var __getProtoOf = Object.getPrototypeOf; +var __hasOwnProp = Object.prototype.hasOwnProperty; +var __propIsEnum = Object.prototype.propertyIsEnumerable; +var __defNormalProp = (obj, key2, value) => key2 in obj ? __defProp(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + if (__getOwnPropSymbols) + for (var prop of __getOwnPropSymbols(b)) { + if (__propIsEnum.call(b, prop)) + __defNormalProp(a, prop, b[prop]); + } + return a; +}; +var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); +var __markAsModule = (target) => __defProp(target, "__esModule", { value: true }); +var __commonJS = (cb, mod) => function __require() { + return mod || (0, cb[Object.keys(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export = (target, all) => { + __markAsModule(target); + for (var name in all) + __defProp(target, name, { get: all[name], enumerable: true }); +}; +var __reExport = (target, module2, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames(module2)) + if (!__hasOwnProp.call(target, key2) && key2 !== "default") + __defProp(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toModule = (module2) => { + return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2); +}; +var __async = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; + +// node_modules/ms/index.js +var require_ms = __commonJS({ + "node_modules/ms/index.js"(exports, module2) { + var s = 1e3; + var m = s * 60; + var h = m * 60; + var d = h * 24; + var w = d * 7; + var y = d * 365.25; + module2.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === "string" && val.length > 0) { + return parse(val); + } else if (type === "number" && isFinite(val)) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val)); + }; + function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(str); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || "ms").toLowerCase(); + switch (type) { + case "years": + case "year": + case "yrs": + case "yr": + case "y": + return n * y; + case "weeks": + case "week": + case "w": + return n * w; + case "days": + case "day": + case "d": + return n * d; + case "hours": + case "hour": + case "hrs": + case "hr": + case "h": + return n * h; + case "minutes": + case "minute": + case "mins": + case "min": + case "m": + return n * m; + case "seconds": + case "second": + case "secs": + case "sec": + case "s": + return n * s; + case "milliseconds": + case "millisecond": + case "msecs": + case "msec": + case "ms": + return n; + default: + return void 0; + } + } + function fmtShort(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + "d"; + } + if (msAbs >= h) { + return Math.round(ms / h) + "h"; + } + if (msAbs >= m) { + return Math.round(ms / m) + "m"; + } + if (msAbs >= s) { + return Math.round(ms / s) + "s"; + } + return ms + "ms"; + } + function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, "day"); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, "hour"); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, "minute"); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, "second"); + } + return ms + " ms"; + } + function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + " " + name + (isPlural ? "s" : ""); + } + } +}); + +// node_modules/debug/src/common.js +var require_common = __commonJS({ + "node_modules/debug/src/common.js"(exports, module2) { + function setup(env) { + createDebug.debug = createDebug; + createDebug.default = createDebug; + createDebug.coerce = coerce; + createDebug.disable = disable; + createDebug.enable = enable; + createDebug.enabled = enabled; + createDebug.humanize = require_ms(); + createDebug.destroy = destroy; + Object.keys(env).forEach((key2) => { + createDebug[key2] = env[key2]; + }); + createDebug.names = []; + createDebug.skips = []; + createDebug.formatters = {}; + function selectColor(namespace) { + let hash2 = 0; + for (let i = 0; i < namespace.length; i++) { + hash2 = (hash2 << 5) - hash2 + namespace.charCodeAt(i); + hash2 |= 0; + } + return createDebug.colors[Math.abs(hash2) % createDebug.colors.length]; + } + createDebug.selectColor = selectColor; + function createDebug(namespace) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + function debug2(...args) { + if (!debug2.enabled) { + return; + } + const self3 = debug2; + const curr = Number(new Date()); + const ms = curr - (prevTime || curr); + self3.diff = ms; + self3.prev = prevTime; + self3.curr = curr; + prevTime = curr; + args[0] = createDebug.coerce(args[0]); + if (typeof args[0] !== "string") { + args.unshift("%O"); + } + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + if (match === "%%") { + return "%"; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === "function") { + const val = args[index]; + match = formatter.call(self3, val); + args.splice(index, 1); + index--; + } + return match; + }); + createDebug.formatArgs.call(self3, args); + const logFn = self3.log || createDebug.log; + logFn.apply(self3, args); + } + debug2.namespace = namespace; + debug2.useColors = createDebug.useColors(); + debug2.color = createDebug.selectColor(namespace); + debug2.extend = extend; + debug2.destroy = createDebug.destroy; + Object.defineProperty(debug2, "enabled", { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + return enabledCache; + }, + set: (v) => { + enableOverride = v; + } + }); + if (typeof createDebug.init === "function") { + createDebug.init(debug2); + } + return debug2; + } + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === "undefined" ? ":" : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + function enable(namespaces) { + createDebug.save(namespaces); + createDebug.namespaces = namespaces; + createDebug.names = []; + createDebug.skips = []; + let i; + const split = (typeof namespaces === "string" ? namespaces : "").split(/[\s,]+/); + const len = split.length; + for (i = 0; i < len; i++) { + if (!split[i]) { + continue; + } + namespaces = split[i].replace(/\*/g, ".*?"); + if (namespaces[0] === "-") { + createDebug.skips.push(new RegExp("^" + namespaces.slice(1) + "$")); + } else { + createDebug.names.push(new RegExp("^" + namespaces + "$")); + } + } + } + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map((namespace) => "-" + namespace) + ].join(","); + createDebug.enable(""); + return namespaces; + } + function enabled(name) { + if (name[name.length - 1] === "*") { + return true; + } + let i; + let len; + for (i = 0, len = createDebug.skips.length; i < len; i++) { + if (createDebug.skips[i].test(name)) { + return false; + } + } + for (i = 0, len = createDebug.names.length; i < len; i++) { + if (createDebug.names[i].test(name)) { + return true; + } + } + return false; + } + function toNamespace(regexp) { + return regexp.toString().substring(2, regexp.toString().length - 2).replace(/\.\*\?$/, "*"); + } + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + function destroy() { + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + createDebug.enable(createDebug.load()); + return createDebug; + } + module2.exports = setup; + } +}); + +// node_modules/debug/src/browser.js +var require_browser = __commonJS({ + "node_modules/debug/src/browser.js"(exports, module2) { + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.storage = localstorage(); + exports.destroy = (() => { + let warned = false; + return () => { + if (!warned) { + warned = true; + console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + } + }; + })(); + exports.colors = [ + "#0000CC", + "#0000FF", + "#0033CC", + "#0033FF", + "#0066CC", + "#0066FF", + "#0099CC", + "#0099FF", + "#00CC00", + "#00CC33", + "#00CC66", + "#00CC99", + "#00CCCC", + "#00CCFF", + "#3300CC", + "#3300FF", + "#3333CC", + "#3333FF", + "#3366CC", + "#3366FF", + "#3399CC", + "#3399FF", + "#33CC00", + "#33CC33", + "#33CC66", + "#33CC99", + "#33CCCC", + "#33CCFF", + "#6600CC", + "#6600FF", + "#6633CC", + "#6633FF", + "#66CC00", + "#66CC33", + "#9900CC", + "#9900FF", + "#9933CC", + "#9933FF", + "#99CC00", + "#99CC33", + "#CC0000", + "#CC0033", + "#CC0066", + "#CC0099", + "#CC00CC", + "#CC00FF", + "#CC3300", + "#CC3333", + "#CC3366", + "#CC3399", + "#CC33CC", + "#CC33FF", + "#CC6600", + "#CC6633", + "#CC9900", + "#CC9933", + "#CCCC00", + "#CCCC33", + "#FF0000", + "#FF0033", + "#FF0066", + "#FF0099", + "#FF00CC", + "#FF00FF", + "#FF3300", + "#FF3333", + "#FF3366", + "#FF3399", + "#FF33CC", + "#FF33FF", + "#FF6600", + "#FF6633", + "#FF9900", + "#FF9933", + "#FFCC00", + "#FFCC33" + ]; + function useColors() { + if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) { + return true; + } + if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { + return false; + } + return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/); + } + function formatArgs(args) { + args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module2.exports.humanize(this.diff); + if (!this.useColors) { + return; + } + const c = "color: " + this.color; + args.splice(1, 0, c, "color: inherit"); + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, (match) => { + if (match === "%%") { + return; + } + index++; + if (match === "%c") { + lastC = index; + } + }); + args.splice(lastC, 0, c); + } + exports.log = console.debug || console.log || (() => { + }); + function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem("debug", namespaces); + } else { + exports.storage.removeItem("debug"); + } + } catch (error) { + } + } + function load() { + let r; + try { + r = exports.storage.getItem("debug"); + } catch (error) { + } + if (!r && typeof process !== "undefined" && "env" in process) { + r = process.env.DEBUG; + } + return r; + } + function localstorage() { + try { + return localStorage; + } catch (error) { + } + } + module2.exports = require_common()(exports); + var { formatters } = module2.exports; + formatters.j = function(v) { + try { + return JSON.stringify(v); + } catch (error) { + return "[UnexpectedJSONParseError]: " + error.message; + } + }; + } +}); + +// node_modules/has-flag/index.js +var require_has_flag = __commonJS({ + "node_modules/has-flag/index.js"(exports, module2) { + "use strict"; + module2.exports = (flag, argv = process.argv) => { + const prefix = flag.startsWith("-") ? "" : flag.length === 1 ? "-" : "--"; + const position = argv.indexOf(prefix + flag); + const terminatorPosition = argv.indexOf("--"); + return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); + }; + } +}); + +// node_modules/supports-color/index.js +var require_supports_color = __commonJS({ + "node_modules/supports-color/index.js"(exports, module2) { + "use strict"; + var os = require("os"); + var tty = require("tty"); + var hasFlag = require_has_flag(); + var { env } = process; + var forceColor; + if (hasFlag("no-color") || hasFlag("no-colors") || hasFlag("color=false") || hasFlag("color=never")) { + forceColor = 0; + } else if (hasFlag("color") || hasFlag("colors") || hasFlag("color=true") || hasFlag("color=always")) { + forceColor = 1; + } + if ("FORCE_COLOR" in env) { + if (env.FORCE_COLOR === "true") { + forceColor = 1; + } else if (env.FORCE_COLOR === "false") { + forceColor = 0; + } else { + forceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3); + } + } + function translateLevel(level) { + if (level === 0) { + return false; + } + return { + level, + hasBasic: true, + has256: level >= 2, + has16m: level >= 3 + }; + } + function supportsColor(haveStream, streamIsTTY) { + if (forceColor === 0) { + return 0; + } + if (hasFlag("color=16m") || hasFlag("color=full") || hasFlag("color=truecolor")) { + return 3; + } + if (hasFlag("color=256")) { + return 2; + } + if (haveStream && !streamIsTTY && forceColor === void 0) { + return 0; + } + const min = forceColor || 0; + if (env.TERM === "dumb") { + return min; + } + if (process.platform === "win32") { + const osRelease = os.release().split("."); + if (Number(osRelease[0]) >= 10 && Number(osRelease[2]) >= 10586) { + return Number(osRelease[2]) >= 14931 ? 3 : 2; + } + return 1; + } + if ("CI" in env) { + if (["TRAVIS", "CIRCLECI", "APPVEYOR", "GITLAB_CI", "GITHUB_ACTIONS", "BUILDKITE"].some((sign) => sign in env) || env.CI_NAME === "codeship") { + return 1; + } + return min; + } + if ("TEAMCITY_VERSION" in env) { + return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; + } + if (env.COLORTERM === "truecolor") { + return 3; + } + if ("TERM_PROGRAM" in env) { + const version = parseInt((env.TERM_PROGRAM_VERSION || "").split(".")[0], 10); + switch (env.TERM_PROGRAM) { + case "iTerm.app": + return version >= 3 ? 3 : 2; + case "Apple_Terminal": + return 2; + } + } + if (/-256(color)?$/i.test(env.TERM)) { + return 2; + } + if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { + return 1; + } + if ("COLORTERM" in env) { + return 1; + } + return min; + } + function getSupportLevel(stream) { + const level = supportsColor(stream, stream && stream.isTTY); + return translateLevel(level); + } + module2.exports = { + supportsColor: getSupportLevel, + stdout: translateLevel(supportsColor(true, tty.isatty(1))), + stderr: translateLevel(supportsColor(true, tty.isatty(2))) + }; + } +}); + +// node_modules/debug/src/node.js +var require_node = __commonJS({ + "node_modules/debug/src/node.js"(exports, module2) { + var tty = require("tty"); + var util = require("util"); + exports.init = init2; + exports.log = log; + exports.formatArgs = formatArgs; + exports.save = save; + exports.load = load; + exports.useColors = useColors; + exports.destroy = util.deprecate(() => { + }, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."); + exports.colors = [6, 2, 3, 4, 5, 1]; + try { + const supportsColor = require_supports_color(); + if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { + exports.colors = [ + 20, + 21, + 26, + 27, + 32, + 33, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 56, + 57, + 62, + 63, + 68, + 69, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 92, + 93, + 98, + 99, + 112, + 113, + 128, + 129, + 134, + 135, + 148, + 149, + 160, + 161, + 162, + 163, + 164, + 165, + 166, + 167, + 168, + 169, + 170, + 171, + 172, + 173, + 178, + 179, + 184, + 185, + 196, + 197, + 198, + 199, + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209, + 214, + 215, + 220, + 221 + ]; + } + } catch (error) { + } + exports.inspectOpts = Object.keys(process.env).filter((key2) => { + return /^debug_/i.test(key2); + }).reduce((obj, key2) => { + const prop = key2.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + let val = process.env[key2]; + if (/^(yes|on|true|enabled)$/i.test(val)) { + val = true; + } else if (/^(no|off|false|disabled)$/i.test(val)) { + val = false; + } else if (val === "null") { + val = null; + } else { + val = Number(val); + } + obj[prop] = val; + return obj; + }, {}); + function useColors() { + return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd); + } + function formatArgs(args) { + const { namespace: name, useColors: useColors2 } = this; + if (useColors2) { + const c = this.color; + const colorCode = "[3" + (c < 8 ? c : "8;5;" + c); + const prefix = ` ${colorCode};1m${name} `; + args[0] = prefix + args[0].split("\n").join("\n" + prefix); + args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + ""); + } else { + args[0] = getDate() + name + " " + args[0]; + } + } + function getDate() { + if (exports.inspectOpts.hideDate) { + return ""; + } + return new Date().toISOString() + " "; + } + function log(...args) { + return process.stderr.write(util.format(...args) + "\n"); + } + function save(namespaces) { + if (namespaces) { + process.env.DEBUG = namespaces; + } else { + delete process.env.DEBUG; + } + } + function load() { + return process.env.DEBUG; + } + function init2(debug2) { + debug2.inspectOpts = {}; + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug2.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } + } + module2.exports = require_common()(exports); + var { formatters } = module2.exports; + formatters.o = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts).split("\n").map((str) => str.trim()).join(" "); + }; + formatters.O = function(v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts); + }; + } +}); + +// node_modules/debug/src/index.js +var require_src = __commonJS({ + "node_modules/debug/src/index.js"(exports, module2) { + if (typeof process === "undefined" || process.type === "renderer" || process.browser === true || process.__nwjs) { + module2.exports = require_browser(); + } else { + module2.exports = require_node(); + } + } +}); + +// node_modules/@kwsites/file-exists/dist/src/index.js +var require_src2 = __commonJS({ + "node_modules/@kwsites/file-exists/dist/src/index.js"(exports) { + "use strict"; + var __importDefault2 = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + var fs_1 = require("fs"); + var debug_1 = __importDefault2(require_src()); + var log = debug_1.default("@kwsites/file-exists"); + function check(path3, isFile, isDirectory) { + log(`checking %s`, path3); + try { + const stat = fs_1.statSync(path3); + if (stat.isFile() && isFile) { + log(`[OK] path represents a file`); + return true; + } + if (stat.isDirectory() && isDirectory) { + log(`[OK] path represents a directory`); + return true; + } + log(`[FAIL] path represents something other than a file or directory`); + return false; + } catch (e) { + if (e.code === "ENOENT") { + log(`[FAIL] path is not accessible: %o`, e); + return false; + } + log(`[FATAL] %o`, e); + throw e; + } + } + function exists2(path3, type = exports.READABLE) { + return check(path3, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); + } + exports.exists = exists2; + exports.FILE = 1; + exports.FOLDER = 2; + exports.READABLE = exports.FILE + exports.FOLDER; + } +}); + +// node_modules/@kwsites/file-exists/dist/index.js +var require_dist = __commonJS({ + "node_modules/@kwsites/file-exists/dist/index.js"(exports) { + "use strict"; + function __export3(m) { + for (var p in m) + if (!exports.hasOwnProperty(p)) + exports[p] = m[p]; + } + Object.defineProperty(exports, "__esModule", { value: true }); + __export3(require_src2()); + } +}); + +// node_modules/@kwsites/promise-deferred/dist/index.js +var require_dist2 = __commonJS({ + "node_modules/@kwsites/promise-deferred/dist/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.createDeferred = exports.deferred = void 0; + function deferred2() { + let done; + let fail; + let status = "pending"; + const promise2 = new Promise((_done, _fail) => { + done = _done; + fail = _fail; + }); + return { + promise: promise2, + done(result) { + if (status === "pending") { + status = "resolved"; + done(result); + } + }, + fail(error) { + if (status === "pending") { + status = "rejected"; + fail(error); + } + }, + get fulfilled() { + return status !== "pending"; + }, + get status() { + return status; + } + }; + } + exports.deferred = deferred2; + exports.createDeferred = deferred2; + exports.default = deferred2; + } +}); + +// node_modules/diff2html/lib/types.js +var require_types = __commonJS({ + "node_modules/diff2html/lib/types.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.DiffStyleType = exports.LineMatchingType = exports.OutputFormatType = exports.LineType = void 0; + var LineType; + (function(LineType2) { + LineType2["INSERT"] = "insert"; + LineType2["DELETE"] = "delete"; + LineType2["CONTEXT"] = "context"; + })(LineType = exports.LineType || (exports.LineType = {})); + exports.OutputFormatType = { + LINE_BY_LINE: "line-by-line", + SIDE_BY_SIDE: "side-by-side" + }; + exports.LineMatchingType = { + LINES: "lines", + WORDS: "words", + NONE: "none" + }; + exports.DiffStyleType = { + WORD: "word", + CHAR: "char" + }; + } +}); + +// node_modules/diff2html/lib/utils.js +var require_utils = __commonJS({ + "node_modules/diff2html/lib/utils.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.hashCode = exports.unifyPath = exports.escapeForRegExp = void 0; + var specials = [ + "-", + "[", + "]", + "/", + "{", + "}", + "(", + ")", + "*", + "+", + "?", + ".", + "\\", + "^", + "$", + "|" + ]; + var regex = RegExp("[" + specials.join("\\") + "]", "g"); + function escapeForRegExp(str) { + return str.replace(regex, "\\$&"); + } + exports.escapeForRegExp = escapeForRegExp; + function unifyPath(path3) { + return path3 ? path3.replace(/\\/g, "/") : path3; + } + exports.unifyPath = unifyPath; + function hashCode(text2) { + var i, chr, len; + var hash2 = 0; + for (i = 0, len = text2.length; i < len; i++) { + chr = text2.charCodeAt(i); + hash2 = (hash2 << 5) - hash2 + chr; + hash2 |= 0; + } + return hash2; + } + exports.hashCode = hashCode; + } +}); + +// node_modules/diff2html/lib/diff-parser.js +var require_diff_parser = __commonJS({ + "node_modules/diff2html/lib/diff-parser.js"(exports) { + "use strict"; + var __spreadArray2 = exports && exports.__spreadArray || function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.parse = void 0; + var types_1 = require_types(); + var utils_1 = require_utils(); + function getExtension(filename, language) { + var filenameParts = filename.split("."); + return filenameParts.length > 1 ? filenameParts[filenameParts.length - 1] : language; + } + function startsWithAny(str, prefixes) { + return prefixes.reduce(function(startsWith, prefix) { + return startsWith || str.startsWith(prefix); + }, false); + } + var baseDiffFilenamePrefixes = ["a/", "b/", "i/", "w/", "c/", "o/"]; + function getFilename(line, linePrefix, extraPrefix) { + var prefixes = extraPrefix !== void 0 ? __spreadArray2(__spreadArray2([], baseDiffFilenamePrefixes, true), [extraPrefix], false) : baseDiffFilenamePrefixes; + var FilenameRegExp = linePrefix ? new RegExp("^" + (0, utils_1.escapeForRegExp)(linePrefix) + ' "?(.+?)"?$') : new RegExp('^"?(.+?)"?$'); + var _a2 = FilenameRegExp.exec(line) || [], _b = _a2[1], filename = _b === void 0 ? "" : _b; + var matchingPrefix = prefixes.find(function(p) { + return filename.indexOf(p) === 0; + }); + var fnameWithoutPrefix = matchingPrefix ? filename.slice(matchingPrefix.length) : filename; + return fnameWithoutPrefix.replace(/\s+\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}(?:\.\d+)? [+-]\d{4}.*$/, ""); + } + function getSrcFilename(line, srcPrefix) { + return getFilename(line, "---", srcPrefix); + } + function getDstFilename(line, dstPrefix) { + return getFilename(line, "+++", dstPrefix); + } + function parse(diffInput, config) { + if (config === void 0) { + config = {}; + } + var files = []; + var currentFile = null; + var currentBlock = null; + var oldLine = null; + var oldLine2 = null; + var newLine = null; + var possibleOldName = null; + var possibleNewName = null; + var oldFileNameHeader = "--- "; + var newFileNameHeader = "+++ "; + var hunkHeaderPrefix = "@@"; + var oldMode = /^old mode (\d{6})/; + var newMode = /^new mode (\d{6})/; + var deletedFileMode = /^deleted file mode (\d{6})/; + var newFileMode = /^new file mode (\d{6})/; + var copyFrom = /^copy from "?(.+)"?/; + var copyTo = /^copy to "?(.+)"?/; + var renameFrom = /^rename from "?(.+)"?/; + var renameTo = /^rename to "?(.+)"?/; + var similarityIndex = /^similarity index (\d+)%/; + var dissimilarityIndex = /^dissimilarity index (\d+)%/; + var index = /^index ([\da-z]+)\.\.([\da-z]+)\s*(\d{6})?/; + var binaryFiles = /^Binary files (.*) and (.*) differ/; + var binaryDiff = /^GIT binary patch/; + var combinedIndex = /^index ([\da-z]+),([\da-z]+)\.\.([\da-z]+)/; + var combinedMode = /^mode (\d{6}),(\d{6})\.\.(\d{6})/; + var combinedNewFile = /^new file mode (\d{6})/; + var combinedDeletedFile = /^deleted file mode (\d{6}),(\d{6})/; + var diffLines = diffInput.replace(/\\ No newline at end of file/g, "").replace(/\r\n?/g, "\n").split("\n"); + function saveBlock() { + if (currentBlock !== null && currentFile !== null) { + currentFile.blocks.push(currentBlock); + currentBlock = null; + } + } + function saveFile() { + if (currentFile !== null) { + if (!currentFile.oldName && possibleOldName !== null) { + currentFile.oldName = possibleOldName; + } + if (!currentFile.newName && possibleNewName !== null) { + currentFile.newName = possibleNewName; + } + if (currentFile.newName) { + files.push(currentFile); + currentFile = null; + } + } + possibleOldName = null; + possibleNewName = null; + } + function startFile() { + saveBlock(); + saveFile(); + currentFile = { + blocks: [], + deletedLines: 0, + addedLines: 0 + }; + } + function startBlock(line) { + saveBlock(); + var values; + if (currentFile !== null) { + if (values = /^@@ -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@.*/.exec(line)) { + currentFile.isCombined = false; + oldLine = parseInt(values[1], 10); + newLine = parseInt(values[2], 10); + } else if (values = /^@@@ -(\d+)(?:,\d+)? -(\d+)(?:,\d+)? \+(\d+)(?:,\d+)? @@@.*/.exec(line)) { + currentFile.isCombined = true; + oldLine = parseInt(values[1], 10); + oldLine2 = parseInt(values[2], 10); + newLine = parseInt(values[3], 10); + } else { + if (line.startsWith(hunkHeaderPrefix)) { + console.error("Failed to parse lines, starting in 0!"); + } + oldLine = 0; + newLine = 0; + currentFile.isCombined = false; + } + } + currentBlock = { + lines: [], + oldStartLine: oldLine, + oldStartLine2: oldLine2, + newStartLine: newLine, + header: line + }; + } + function createLine(line) { + if (currentFile === null || currentBlock === null || oldLine === null || newLine === null) + return; + var currentLine = { + content: line + }; + var addedPrefixes = currentFile.isCombined ? ["+ ", " +", "++"] : ["+"]; + var deletedPrefixes = currentFile.isCombined ? ["- ", " -", "--"] : ["-"]; + if (startsWithAny(line, addedPrefixes)) { + currentFile.addedLines++; + currentLine.type = types_1.LineType.INSERT; + currentLine.oldNumber = void 0; + currentLine.newNumber = newLine++; + } else if (startsWithAny(line, deletedPrefixes)) { + currentFile.deletedLines++; + currentLine.type = types_1.LineType.DELETE; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = void 0; + } else { + currentLine.type = types_1.LineType.CONTEXT; + currentLine.oldNumber = oldLine++; + currentLine.newNumber = newLine++; + } + currentBlock.lines.push(currentLine); + } + function existHunkHeader(line, lineIdx) { + var idx = lineIdx; + while (idx < diffLines.length - 3) { + if (line.startsWith("diff")) { + return false; + } + if (diffLines[idx].startsWith(oldFileNameHeader) && diffLines[idx + 1].startsWith(newFileNameHeader) && diffLines[idx + 2].startsWith(hunkHeaderPrefix)) { + return true; + } + idx++; + } + return false; + } + diffLines.forEach(function(line, lineIndex) { + if (!line || line.startsWith("*")) { + return; + } + var values; + var prevLine = diffLines[lineIndex - 1]; + var nxtLine = diffLines[lineIndex + 1]; + var afterNxtLine = diffLines[lineIndex + 2]; + if (line.startsWith("diff")) { + startFile(); + var gitDiffStart = /^diff --git "?([a-ciow]\/.+)"? "?([a-ciow]\/.+)"?/; + if (values = gitDiffStart.exec(line)) { + possibleOldName = getFilename(values[1], void 0, config.dstPrefix); + possibleNewName = getFilename(values[2], void 0, config.srcPrefix); + } + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + currentFile.isGitDiff = true; + return; + } + if (!currentFile || !currentFile.isGitDiff && currentFile && line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) && afterNxtLine.startsWith(hunkHeaderPrefix)) { + startFile(); + } + if (currentFile === null || currentFile === void 0 ? void 0 : currentFile.isTooBig) { + return; + } + if (currentFile && (typeof config.diffMaxChanges === "number" && currentFile.addedLines + currentFile.deletedLines > config.diffMaxChanges || typeof config.diffMaxLineLength === "number" && line.length > config.diffMaxLineLength)) { + currentFile.isTooBig = true; + currentFile.addedLines = 0; + currentFile.deletedLines = 0; + currentFile.blocks = []; + currentBlock = null; + var message = typeof config.diffTooBigMessage === "function" ? config.diffTooBigMessage(files.length) : "Diff too big to be displayed"; + startBlock(message); + return; + } + if (line.startsWith(oldFileNameHeader) && nxtLine.startsWith(newFileNameHeader) || line.startsWith(newFileNameHeader) && prevLine.startsWith(oldFileNameHeader)) { + if (currentFile && !currentFile.oldName && line.startsWith("--- ") && (values = getSrcFilename(line, config.srcPrefix))) { + currentFile.oldName = values; + currentFile.language = getExtension(currentFile.oldName, currentFile.language); + return; + } + if (currentFile && !currentFile.newName && line.startsWith("+++ ") && (values = getDstFilename(line, config.dstPrefix))) { + currentFile.newName = values; + currentFile.language = getExtension(currentFile.newName, currentFile.language); + return; + } + } + if (currentFile && (line.startsWith(hunkHeaderPrefix) || currentFile.isGitDiff && currentFile.oldName && currentFile.newName && !currentBlock)) { + startBlock(line); + return; + } + if (currentBlock && (line.startsWith("+") || line.startsWith("-") || line.startsWith(" "))) { + createLine(line); + return; + } + var doesNotExistHunkHeader = !existHunkHeader(line, lineIndex); + if (currentFile === null) { + throw new Error("Where is my file !!!"); + } + if (values = oldMode.exec(line)) { + currentFile.oldMode = values[1]; + } else if (values = newMode.exec(line)) { + currentFile.newMode = values[1]; + } else if (values = deletedFileMode.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } else if (values = newFileMode.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = copyFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isCopy = true; + } else if (values = copyTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isCopy = true; + } else if (values = renameFrom.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.oldName = values[1]; + } + currentFile.isRename = true; + } else if (values = renameTo.exec(line)) { + if (doesNotExistHunkHeader) { + currentFile.newName = values[1]; + } + currentFile.isRename = true; + } else if (values = binaryFiles.exec(line)) { + currentFile.isBinary = true; + currentFile.oldName = getFilename(values[1], void 0, config.srcPrefix); + currentFile.newName = getFilename(values[2], void 0, config.dstPrefix); + startBlock("Binary file"); + } else if (binaryDiff.test(line)) { + currentFile.isBinary = true; + startBlock(line); + } else if (values = similarityIndex.exec(line)) { + currentFile.unchangedPercentage = parseInt(values[1], 10); + } else if (values = dissimilarityIndex.exec(line)) { + currentFile.changedPercentage = parseInt(values[1], 10); + } else if (values = index.exec(line)) { + currentFile.checksumBefore = values[1]; + currentFile.checksumAfter = values[2]; + values[3] && (currentFile.mode = values[3]); + } else if (values = combinedIndex.exec(line)) { + currentFile.checksumBefore = [values[2], values[3]]; + currentFile.checksumAfter = values[1]; + } else if (values = combinedMode.exec(line)) { + currentFile.oldMode = [values[2], values[3]]; + currentFile.newMode = values[1]; + } else if (values = combinedNewFile.exec(line)) { + currentFile.newFileMode = values[1]; + currentFile.isNew = true; + } else if (values = combinedDeletedFile.exec(line)) { + currentFile.deletedFileMode = values[1]; + currentFile.isDeleted = true; + } + }); + saveBlock(); + saveFile(); + return files; + } + exports.parse = parse; + } +}); + +// node_modules/diff/lib/diff/base.js +var require_base = __commonJS({ + "node_modules/diff/lib/diff/base.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = Diff; + function Diff() { + } + Diff.prototype = { + diff: function diff(oldString, newString) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + var callback = options.callback; + if (typeof options === "function") { + callback = options; + options = {}; + } + this.options = options; + var self3 = this; + function done(value) { + if (callback) { + setTimeout(function() { + callback(void 0, value); + }, 0); + return true; + } else { + return value; + } + } + oldString = this.castInput(oldString); + newString = this.castInput(newString); + oldString = this.removeEmpty(this.tokenize(oldString)); + newString = this.removeEmpty(this.tokenize(newString)); + var newLen = newString.length, oldLen = oldString.length; + var editLength = 1; + var maxEditLength = newLen + oldLen; + var bestPath = [{ + newPos: -1, + components: [] + }]; + var oldPos = this.extractCommon(bestPath[0], newString, oldString, 0); + if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) { + return done([{ + value: this.join(newString), + count: newString.length + }]); + } + function execEditLength() { + for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) { + var basePath = void 0; + var addPath = bestPath[diagonalPath - 1], removePath = bestPath[diagonalPath + 1], _oldPos = (removePath ? removePath.newPos : 0) - diagonalPath; + if (addPath) { + bestPath[diagonalPath - 1] = void 0; + } + var canAdd = addPath && addPath.newPos + 1 < newLen, canRemove = removePath && 0 <= _oldPos && _oldPos < oldLen; + if (!canAdd && !canRemove) { + bestPath[diagonalPath] = void 0; + continue; + } + if (!canAdd || canRemove && addPath.newPos < removePath.newPos) { + basePath = clonePath(removePath); + self3.pushComponent(basePath.components, void 0, true); + } else { + basePath = addPath; + basePath.newPos++; + self3.pushComponent(basePath.components, true, void 0); + } + _oldPos = self3.extractCommon(basePath, newString, oldString, diagonalPath); + if (basePath.newPos + 1 >= newLen && _oldPos + 1 >= oldLen) { + return done(buildValues(self3, basePath.components, newString, oldString, self3.useLongestToken)); + } else { + bestPath[diagonalPath] = basePath; + } + } + editLength++; + } + if (callback) { + (function exec() { + setTimeout(function() { + if (editLength > maxEditLength) { + return callback(); + } + if (!execEditLength()) { + exec(); + } + }, 0); + })(); + } else { + while (editLength <= maxEditLength) { + var ret = execEditLength(); + if (ret) { + return ret; + } + } + } + }, + pushComponent: function pushComponent(components, added, removed) { + var last2 = components[components.length - 1]; + if (last2 && last2.added === added && last2.removed === removed) { + components[components.length - 1] = { + count: last2.count + 1, + added, + removed + }; + } else { + components.push({ + count: 1, + added, + removed + }); + } + }, + extractCommon: function extractCommon(basePath, newString, oldString, diagonalPath) { + var newLen = newString.length, oldLen = oldString.length, newPos = basePath.newPos, oldPos = newPos - diagonalPath, commonCount = 0; + while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(newString[newPos + 1], oldString[oldPos + 1])) { + newPos++; + oldPos++; + commonCount++; + } + if (commonCount) { + basePath.components.push({ + count: commonCount + }); + } + basePath.newPos = newPos; + return oldPos; + }, + equals: function equals(left, right) { + if (this.options.comparator) { + return this.options.comparator(left, right); + } else { + return left === right || this.options.ignoreCase && left.toLowerCase() === right.toLowerCase(); + } + }, + removeEmpty: function removeEmpty(array) { + var ret = []; + for (var i = 0; i < array.length; i++) { + if (array[i]) { + ret.push(array[i]); + } + } + return ret; + }, + castInput: function castInput(value) { + return value; + }, + tokenize: function tokenize(value) { + return value.split(""); + }, + join: function join2(chars) { + return chars.join(""); + } + }; + function buildValues(diff, components, newString, oldString, useLongestToken) { + var componentPos = 0, componentLen = components.length, newPos = 0, oldPos = 0; + for (; componentPos < componentLen; componentPos++) { + var component = components[componentPos]; + if (!component.removed) { + if (!component.added && useLongestToken) { + var value = newString.slice(newPos, newPos + component.count); + value = value.map(function(value2, i) { + var oldValue = oldString[oldPos + i]; + return oldValue.length > value2.length ? oldValue : value2; + }); + component.value = diff.join(value); + } else { + component.value = diff.join(newString.slice(newPos, newPos + component.count)); + } + newPos += component.count; + if (!component.added) { + oldPos += component.count; + } + } else { + component.value = diff.join(oldString.slice(oldPos, oldPos + component.count)); + oldPos += component.count; + if (componentPos && components[componentPos - 1].added) { + var tmp = components[componentPos - 1]; + components[componentPos - 1] = components[componentPos]; + components[componentPos] = tmp; + } + } + } + var lastComponent = components[componentLen - 1]; + if (componentLen > 1 && typeof lastComponent.value === "string" && (lastComponent.added || lastComponent.removed) && diff.equals("", lastComponent.value)) { + components[componentLen - 2].value += lastComponent.value; + components.pop(); + } + return components; + } + function clonePath(path3) { + return { + newPos: path3.newPos, + components: path3.components.slice(0) + }; + } + } +}); + +// node_modules/diff/lib/diff/character.js +var require_character = __commonJS({ + "node_modules/diff/lib/diff/character.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffChars = diffChars; + exports.characterDiff = void 0; + var _base = _interopRequireDefault(require_base()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var characterDiff = new _base["default"](); + exports.characterDiff = characterDiff; + function diffChars(oldStr, newStr, options) { + return characterDiff.diff(oldStr, newStr, options); + } + } +}); + +// node_modules/diff/lib/util/params.js +var require_params = __commonJS({ + "node_modules/diff/lib/util/params.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.generateOptions = generateOptions; + function generateOptions(options, defaults) { + if (typeof options === "function") { + defaults.callback = options; + } else if (options) { + for (var name in options) { + if (options.hasOwnProperty(name)) { + defaults[name] = options[name]; + } + } + } + return defaults; + } + } +}); + +// node_modules/diff/lib/diff/word.js +var require_word = __commonJS({ + "node_modules/diff/lib/diff/word.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffWords = diffWords; + exports.diffWordsWithSpace = diffWordsWithSpace; + exports.wordDiff = void 0; + var _base = _interopRequireDefault(require_base()); + var _params = require_params(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var extendedWordChars = /^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/; + var reWhitespace = /\S/; + var wordDiff = new _base["default"](); + exports.wordDiff = wordDiff; + wordDiff.equals = function(left, right) { + if (this.options.ignoreCase) { + left = left.toLowerCase(); + right = right.toLowerCase(); + } + return left === right || this.options.ignoreWhitespace && !reWhitespace.test(left) && !reWhitespace.test(right); + }; + wordDiff.tokenize = function(value) { + var tokens = value.split(/([^\S\r\n]+|[()[\]{}'"\r\n]|\b)/); + for (var i = 0; i < tokens.length - 1; i++) { + if (!tokens[i + 1] && tokens[i + 2] && extendedWordChars.test(tokens[i]) && extendedWordChars.test(tokens[i + 2])) { + tokens[i] += tokens[i + 2]; + tokens.splice(i + 1, 2); + i--; + } + } + return tokens; + }; + function diffWords(oldStr, newStr, options) { + options = (0, _params.generateOptions)(options, { + ignoreWhitespace: true + }); + return wordDiff.diff(oldStr, newStr, options); + } + function diffWordsWithSpace(oldStr, newStr, options) { + return wordDiff.diff(oldStr, newStr, options); + } + } +}); + +// node_modules/diff/lib/diff/line.js +var require_line = __commonJS({ + "node_modules/diff/lib/diff/line.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffLines = diffLines; + exports.diffTrimmedLines = diffTrimmedLines; + exports.lineDiff = void 0; + var _base = _interopRequireDefault(require_base()); + var _params = require_params(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var lineDiff = new _base["default"](); + exports.lineDiff = lineDiff; + lineDiff.tokenize = function(value) { + var retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/); + if (!linesAndNewlines[linesAndNewlines.length - 1]) { + linesAndNewlines.pop(); + } + for (var i = 0; i < linesAndNewlines.length; i++) { + var line = linesAndNewlines[i]; + if (i % 2 && !this.options.newlineIsToken) { + retLines[retLines.length - 1] += line; + } else { + if (this.options.ignoreWhitespace) { + line = line.trim(); + } + retLines.push(line); + } + } + return retLines; + }; + function diffLines(oldStr, newStr, callback) { + return lineDiff.diff(oldStr, newStr, callback); + } + function diffTrimmedLines(oldStr, newStr, callback) { + var options = (0, _params.generateOptions)(callback, { + ignoreWhitespace: true + }); + return lineDiff.diff(oldStr, newStr, options); + } + } +}); + +// node_modules/diff/lib/diff/sentence.js +var require_sentence = __commonJS({ + "node_modules/diff/lib/diff/sentence.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffSentences = diffSentences; + exports.sentenceDiff = void 0; + var _base = _interopRequireDefault(require_base()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var sentenceDiff = new _base["default"](); + exports.sentenceDiff = sentenceDiff; + sentenceDiff.tokenize = function(value) { + return value.split(/(\S.+?[.!?])(?=\s+|$)/); + }; + function diffSentences(oldStr, newStr, callback) { + return sentenceDiff.diff(oldStr, newStr, callback); + } + } +}); + +// node_modules/diff/lib/diff/css.js +var require_css = __commonJS({ + "node_modules/diff/lib/diff/css.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffCss = diffCss; + exports.cssDiff = void 0; + var _base = _interopRequireDefault(require_base()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var cssDiff = new _base["default"](); + exports.cssDiff = cssDiff; + cssDiff.tokenize = function(value) { + return value.split(/([{}:;,]|\s+)/); + }; + function diffCss(oldStr, newStr, callback) { + return cssDiff.diff(oldStr, newStr, callback); + } + } +}); + +// node_modules/diff/lib/diff/json.js +var require_json = __commonJS({ + "node_modules/diff/lib/diff/json.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffJson = diffJson; + exports.canonicalize = canonicalize; + exports.jsonDiff = void 0; + var _base = _interopRequireDefault(require_base()); + var _line = require_line(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof2(obj2) { + return typeof obj2; + }; + } else { + _typeof = function _typeof2(obj2) { + return obj2 && typeof Symbol === "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2; + }; + } + return _typeof(obj); + } + var objectPrototypeToString = Object.prototype.toString; + var jsonDiff = new _base["default"](); + exports.jsonDiff = jsonDiff; + jsonDiff.useLongestToken = true; + jsonDiff.tokenize = _line.lineDiff.tokenize; + jsonDiff.castInput = function(value) { + var _this$options = this.options, undefinedReplacement = _this$options.undefinedReplacement, _this$options$stringi = _this$options.stringifyReplacer, stringifyReplacer = _this$options$stringi === void 0 ? function(k, v) { + return typeof v === "undefined" ? undefinedReplacement : v; + } : _this$options$stringi; + return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), stringifyReplacer, " "); + }; + jsonDiff.equals = function(left, right) { + return _base["default"].prototype.equals.call(jsonDiff, left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1")); + }; + function diffJson(oldObj, newObj, options) { + return jsonDiff.diff(oldObj, newObj, options); + } + function canonicalize(obj, stack, replacementStack, replacer, key2) { + stack = stack || []; + replacementStack = replacementStack || []; + if (replacer) { + obj = replacer(key2, obj); + } + var i; + for (i = 0; i < stack.length; i += 1) { + if (stack[i] === obj) { + return replacementStack[i]; + } + } + var canonicalizedObj; + if (objectPrototypeToString.call(obj) === "[object Array]") { + stack.push(obj); + canonicalizedObj = new Array(obj.length); + replacementStack.push(canonicalizedObj); + for (i = 0; i < obj.length; i += 1) { + canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, key2); + } + stack.pop(); + replacementStack.pop(); + return canonicalizedObj; + } + if (obj && obj.toJSON) { + obj = obj.toJSON(); + } + if (_typeof(obj) === "object" && obj !== null) { + stack.push(obj); + canonicalizedObj = {}; + replacementStack.push(canonicalizedObj); + var sortedKeys = [], _key; + for (_key in obj) { + if (obj.hasOwnProperty(_key)) { + sortedKeys.push(_key); + } + } + sortedKeys.sort(); + for (i = 0; i < sortedKeys.length; i += 1) { + _key = sortedKeys[i]; + canonicalizedObj[_key] = canonicalize(obj[_key], stack, replacementStack, replacer, _key); + } + stack.pop(); + replacementStack.pop(); + } else { + canonicalizedObj = obj; + } + return canonicalizedObj; + } + } +}); + +// node_modules/diff/lib/diff/array.js +var require_array = __commonJS({ + "node_modules/diff/lib/diff/array.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.diffArrays = diffArrays; + exports.arrayDiff = void 0; + var _base = _interopRequireDefault(require_base()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + var arrayDiff = new _base["default"](); + exports.arrayDiff = arrayDiff; + arrayDiff.tokenize = function(value) { + return value.slice(); + }; + arrayDiff.join = arrayDiff.removeEmpty = function(value) { + return value; + }; + function diffArrays(oldArr, newArr, callback) { + return arrayDiff.diff(oldArr, newArr, callback); + } + } +}); + +// node_modules/diff/lib/patch/parse.js +var require_parse = __commonJS({ + "node_modules/diff/lib/patch/parse.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.parsePatch = parsePatch; + function parsePatch(uniDiff) { + var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var diffstr = uniDiff.split(/\r\n|[\n\v\f\r\x85]/), delimiters = uniDiff.match(/\r\n|[\n\v\f\r\x85]/g) || [], list = [], i = 0; + function parseIndex() { + var index = {}; + list.push(index); + while (i < diffstr.length) { + var line = diffstr[i]; + if (/^(\-\-\-|\+\+\+|@@)\s/.test(line)) { + break; + } + var header = /^(?:Index:|diff(?: -r \w+)+)\s+(.+?)\s*$/.exec(line); + if (header) { + index.index = header[1]; + } + i++; + } + parseFileHeader(index); + parseFileHeader(index); + index.hunks = []; + while (i < diffstr.length) { + var _line = diffstr[i]; + if (/^(Index:|diff|\-\-\-|\+\+\+)\s/.test(_line)) { + break; + } else if (/^@@/.test(_line)) { + index.hunks.push(parseHunk()); + } else if (_line && options.strict) { + throw new Error("Unknown line " + (i + 1) + " " + JSON.stringify(_line)); + } else { + i++; + } + } + } + function parseFileHeader(index) { + var fileHeader = /^(---|\+\+\+)\s+(.*)$/.exec(diffstr[i]); + if (fileHeader) { + var keyPrefix = fileHeader[1] === "---" ? "old" : "new"; + var data = fileHeader[2].split(" ", 2); + var fileName = data[0].replace(/\\\\/g, "\\"); + if (/^".*"$/.test(fileName)) { + fileName = fileName.substr(1, fileName.length - 2); + } + index[keyPrefix + "FileName"] = fileName; + index[keyPrefix + "Header"] = (data[1] || "").trim(); + i++; + } + } + function parseHunk() { + var chunkHeaderIndex = i, chunkHeaderLine = diffstr[i++], chunkHeader = chunkHeaderLine.split(/@@ -(\d+)(?:,(\d+))? \+(\d+)(?:,(\d+))? @@/); + var hunk = { + oldStart: +chunkHeader[1], + oldLines: typeof chunkHeader[2] === "undefined" ? 1 : +chunkHeader[2], + newStart: +chunkHeader[3], + newLines: typeof chunkHeader[4] === "undefined" ? 1 : +chunkHeader[4], + lines: [], + linedelimiters: [] + }; + if (hunk.oldLines === 0) { + hunk.oldStart += 1; + } + if (hunk.newLines === 0) { + hunk.newStart += 1; + } + var addCount = 0, removeCount = 0; + for (; i < diffstr.length; i++) { + if (diffstr[i].indexOf("--- ") === 0 && i + 2 < diffstr.length && diffstr[i + 1].indexOf("+++ ") === 0 && diffstr[i + 2].indexOf("@@") === 0) { + break; + } + var operation = diffstr[i].length == 0 && i != diffstr.length - 1 ? " " : diffstr[i][0]; + if (operation === "+" || operation === "-" || operation === " " || operation === "\\") { + hunk.lines.push(diffstr[i]); + hunk.linedelimiters.push(delimiters[i] || "\n"); + if (operation === "+") { + addCount++; + } else if (operation === "-") { + removeCount++; + } else if (operation === " ") { + addCount++; + removeCount++; + } + } else { + break; + } + } + if (!addCount && hunk.newLines === 1) { + hunk.newLines = 0; + } + if (!removeCount && hunk.oldLines === 1) { + hunk.oldLines = 0; + } + if (options.strict) { + if (addCount !== hunk.newLines) { + throw new Error("Added line count did not match for hunk at line " + (chunkHeaderIndex + 1)); + } + if (removeCount !== hunk.oldLines) { + throw new Error("Removed line count did not match for hunk at line " + (chunkHeaderIndex + 1)); + } + } + return hunk; + } + while (i < diffstr.length) { + parseIndex(); + } + return list; + } + } +}); + +// node_modules/diff/lib/util/distance-iterator.js +var require_distance_iterator = __commonJS({ + "node_modules/diff/lib/util/distance-iterator.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports["default"] = _default; + function _default(start, minLine, maxLine) { + var wantForward = true, backwardExhausted = false, forwardExhausted = false, localOffset = 1; + return function iterator() { + if (wantForward && !forwardExhausted) { + if (backwardExhausted) { + localOffset++; + } else { + wantForward = false; + } + if (start + localOffset <= maxLine) { + return localOffset; + } + forwardExhausted = true; + } + if (!backwardExhausted) { + if (!forwardExhausted) { + wantForward = true; + } + if (minLine <= start - localOffset) { + return -localOffset++; + } + backwardExhausted = true; + return iterator(); + } + }; + } + } +}); + +// node_modules/diff/lib/patch/apply.js +var require_apply = __commonJS({ + "node_modules/diff/lib/patch/apply.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.applyPatch = applyPatch; + exports.applyPatches = applyPatches; + var _parse = require_parse(); + var _distanceIterator = _interopRequireDefault(require_distance_iterator()); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + function applyPatch(source, uniDiff) { + var options = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {}; + if (typeof uniDiff === "string") { + uniDiff = (0, _parse.parsePatch)(uniDiff); + } + if (Array.isArray(uniDiff)) { + if (uniDiff.length > 1) { + throw new Error("applyPatch only works with a single input."); + } + uniDiff = uniDiff[0]; + } + var lines = source.split(/\r\n|[\n\v\f\r\x85]/), delimiters = source.match(/\r\n|[\n\v\f\r\x85]/g) || [], hunks = uniDiff.hunks, compareLine = options.compareLine || function(lineNumber, line2, operation2, patchContent) { + return line2 === patchContent; + }, errorCount = 0, fuzzFactor = options.fuzzFactor || 0, minLine = 0, offset = 0, removeEOFNL, addEOFNL; + function hunkFits(hunk2, toPos2) { + for (var j2 = 0; j2 < hunk2.lines.length; j2++) { + var line2 = hunk2.lines[j2], operation2 = line2.length > 0 ? line2[0] : " ", content2 = line2.length > 0 ? line2.substr(1) : line2; + if (operation2 === " " || operation2 === "-") { + if (!compareLine(toPos2 + 1, lines[toPos2], operation2, content2)) { + errorCount++; + if (errorCount > fuzzFactor) { + return false; + } + } + toPos2++; + } + } + return true; + } + for (var i = 0; i < hunks.length; i++) { + var hunk = hunks[i], maxLine = lines.length - hunk.oldLines, localOffset = 0, toPos = offset + hunk.oldStart - 1; + var iterator = (0, _distanceIterator["default"])(toPos, minLine, maxLine); + for (; localOffset !== void 0; localOffset = iterator()) { + if (hunkFits(hunk, toPos + localOffset)) { + hunk.offset = offset += localOffset; + break; + } + } + if (localOffset === void 0) { + return false; + } + minLine = hunk.offset + hunk.oldStart + hunk.oldLines; + } + var diffOffset = 0; + for (var _i = 0; _i < hunks.length; _i++) { + var _hunk = hunks[_i], _toPos = _hunk.oldStart + _hunk.offset + diffOffset - 1; + diffOffset += _hunk.newLines - _hunk.oldLines; + for (var j = 0; j < _hunk.lines.length; j++) { + var line = _hunk.lines[j], operation = line.length > 0 ? line[0] : " ", content = line.length > 0 ? line.substr(1) : line, delimiter = _hunk.linedelimiters[j]; + if (operation === " ") { + _toPos++; + } else if (operation === "-") { + lines.splice(_toPos, 1); + delimiters.splice(_toPos, 1); + } else if (operation === "+") { + lines.splice(_toPos, 0, content); + delimiters.splice(_toPos, 0, delimiter); + _toPos++; + } else if (operation === "\\") { + var previousOperation = _hunk.lines[j - 1] ? _hunk.lines[j - 1][0] : null; + if (previousOperation === "+") { + removeEOFNL = true; + } else if (previousOperation === "-") { + addEOFNL = true; + } + } + } + } + if (removeEOFNL) { + while (!lines[lines.length - 1]) { + lines.pop(); + delimiters.pop(); + } + } else if (addEOFNL) { + lines.push(""); + delimiters.push("\n"); + } + for (var _k = 0; _k < lines.length - 1; _k++) { + lines[_k] = lines[_k] + delimiters[_k]; + } + return lines.join(""); + } + function applyPatches(uniDiff, options) { + if (typeof uniDiff === "string") { + uniDiff = (0, _parse.parsePatch)(uniDiff); + } + var currentIndex = 0; + function processIndex() { + var index = uniDiff[currentIndex++]; + if (!index) { + return options.complete(); + } + options.loadFile(index, function(err, data) { + if (err) { + return options.complete(err); + } + var updatedContent = applyPatch(data, index, options); + options.patched(index, updatedContent, function(err2) { + if (err2) { + return options.complete(err2); + } + processIndex(); + }); + }); + } + processIndex(); + } + } +}); + +// node_modules/diff/lib/patch/create.js +var require_create = __commonJS({ + "node_modules/diff/lib/patch/create.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.structuredPatch = structuredPatch; + exports.formatPatch = formatPatch; + exports.createTwoFilesPatch = createTwoFilesPatch; + exports.createPatch = createPatch; + var _line = require_line(); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + if (!options) { + options = {}; + } + if (typeof options.context === "undefined") { + options.context = 4; + } + var diff = (0, _line.diffLines)(oldStr, newStr, options); + diff.push({ + value: "", + lines: [] + }); + function contextLines(lines) { + return lines.map(function(entry) { + return " " + entry; + }); + } + var hunks = []; + var oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1; + var _loop = function _loop2(i2) { + var current = diff[i2], lines = current.lines || current.value.replace(/\n$/, "").split("\n"); + current.lines = lines; + if (current.added || current.removed) { + var _curRange; + if (!oldRangeStart) { + var prev = diff[i2 - 1]; + oldRangeStart = oldLine; + newRangeStart = newLine; + if (prev) { + curRange = options.context > 0 ? contextLines(prev.lines.slice(-options.context)) : []; + oldRangeStart -= curRange.length; + newRangeStart -= curRange.length; + } + } + (_curRange = curRange).push.apply(_curRange, _toConsumableArray(lines.map(function(entry) { + return (current.added ? "+" : "-") + entry; + }))); + if (current.added) { + newLine += lines.length; + } else { + oldLine += lines.length; + } + } else { + if (oldRangeStart) { + if (lines.length <= options.context * 2 && i2 < diff.length - 2) { + var _curRange2; + (_curRange2 = curRange).push.apply(_curRange2, _toConsumableArray(contextLines(lines))); + } else { + var _curRange3; + var contextSize = Math.min(lines.length, options.context); + (_curRange3 = curRange).push.apply(_curRange3, _toConsumableArray(contextLines(lines.slice(0, contextSize)))); + var hunk = { + oldStart: oldRangeStart, + oldLines: oldLine - oldRangeStart + contextSize, + newStart: newRangeStart, + newLines: newLine - newRangeStart + contextSize, + lines: curRange + }; + if (i2 >= diff.length - 2 && lines.length <= options.context) { + var oldEOFNewline = /\n$/.test(oldStr); + var newEOFNewline = /\n$/.test(newStr); + var noNlBeforeAdds = lines.length == 0 && curRange.length > hunk.oldLines; + if (!oldEOFNewline && noNlBeforeAdds && oldStr.length > 0) { + curRange.splice(hunk.oldLines, 0, "\\ No newline at end of file"); + } + if (!oldEOFNewline && !noNlBeforeAdds || !newEOFNewline) { + curRange.push("\\ No newline at end of file"); + } + } + hunks.push(hunk); + oldRangeStart = 0; + newRangeStart = 0; + curRange = []; + } + } + oldLine += lines.length; + newLine += lines.length; + } + }; + for (var i = 0; i < diff.length; i++) { + _loop(i); + } + return { + oldFileName, + newFileName, + oldHeader, + newHeader, + hunks + }; + } + function formatPatch(diff) { + var ret = []; + if (diff.oldFileName == diff.newFileName) { + ret.push("Index: " + diff.oldFileName); + } + ret.push("==================================================================="); + ret.push("--- " + diff.oldFileName + (typeof diff.oldHeader === "undefined" ? "" : " " + diff.oldHeader)); + ret.push("+++ " + diff.newFileName + (typeof diff.newHeader === "undefined" ? "" : " " + diff.newHeader)); + for (var i = 0; i < diff.hunks.length; i++) { + var hunk = diff.hunks[i]; + if (hunk.oldLines === 0) { + hunk.oldStart -= 1; + } + if (hunk.newLines === 0) { + hunk.newStart -= 1; + } + ret.push("@@ -" + hunk.oldStart + "," + hunk.oldLines + " +" + hunk.newStart + "," + hunk.newLines + " @@"); + ret.push.apply(ret, hunk.lines); + } + return ret.join("\n") + "\n"; + } + function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) { + return formatPatch(structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options)); + } + function createPatch(fileName, oldStr, newStr, oldHeader, newHeader, options) { + return createTwoFilesPatch(fileName, fileName, oldStr, newStr, oldHeader, newHeader, options); + } + } +}); + +// node_modules/diff/lib/util/array.js +var require_array2 = __commonJS({ + "node_modules/diff/lib/util/array.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.arrayEqual = arrayEqual; + exports.arrayStartsWith = arrayStartsWith; + function arrayEqual(a, b) { + if (a.length !== b.length) { + return false; + } + return arrayStartsWith(a, b); + } + function arrayStartsWith(array, start) { + if (start.length > array.length) { + return false; + } + for (var i = 0; i < start.length; i++) { + if (start[i] !== array[i]) { + return false; + } + } + return true; + } + } +}); + +// node_modules/diff/lib/patch/merge.js +var require_merge = __commonJS({ + "node_modules/diff/lib/patch/merge.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.calcLineCount = calcLineCount; + exports.merge = merge; + var _create = require_create(); + var _parse = require_parse(); + var _array = require_array2(); + function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); + } + function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + function _unsupportedIterableToArray(o, minLen) { + if (!o) + return; + if (typeof o === "string") + return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) + n = o.constructor.name; + if (n === "Map" || n === "Set") + return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) + return _arrayLikeToArray(o, minLen); + } + function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) + return Array.from(iter); + } + function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) + return _arrayLikeToArray(arr); + } + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) + len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; + } + function calcLineCount(hunk) { + var _calcOldNewLineCount = calcOldNewLineCount(hunk.lines), oldLines = _calcOldNewLineCount.oldLines, newLines = _calcOldNewLineCount.newLines; + if (oldLines !== void 0) { + hunk.oldLines = oldLines; + } else { + delete hunk.oldLines; + } + if (newLines !== void 0) { + hunk.newLines = newLines; + } else { + delete hunk.newLines; + } + } + function merge(mine, theirs, base) { + mine = loadPatch(mine, base); + theirs = loadPatch(theirs, base); + var ret = {}; + if (mine.index || theirs.index) { + ret.index = mine.index || theirs.index; + } + if (mine.newFileName || theirs.newFileName) { + if (!fileNameChanged(mine)) { + ret.oldFileName = theirs.oldFileName || mine.oldFileName; + ret.newFileName = theirs.newFileName || mine.newFileName; + ret.oldHeader = theirs.oldHeader || mine.oldHeader; + ret.newHeader = theirs.newHeader || mine.newHeader; + } else if (!fileNameChanged(theirs)) { + ret.oldFileName = mine.oldFileName; + ret.newFileName = mine.newFileName; + ret.oldHeader = mine.oldHeader; + ret.newHeader = mine.newHeader; + } else { + ret.oldFileName = selectField(ret, mine.oldFileName, theirs.oldFileName); + ret.newFileName = selectField(ret, mine.newFileName, theirs.newFileName); + ret.oldHeader = selectField(ret, mine.oldHeader, theirs.oldHeader); + ret.newHeader = selectField(ret, mine.newHeader, theirs.newHeader); + } + } + ret.hunks = []; + var mineIndex = 0, theirsIndex = 0, mineOffset = 0, theirsOffset = 0; + while (mineIndex < mine.hunks.length || theirsIndex < theirs.hunks.length) { + var mineCurrent = mine.hunks[mineIndex] || { + oldStart: Infinity + }, theirsCurrent = theirs.hunks[theirsIndex] || { + oldStart: Infinity + }; + if (hunkBefore(mineCurrent, theirsCurrent)) { + ret.hunks.push(cloneHunk(mineCurrent, mineOffset)); + mineIndex++; + theirsOffset += mineCurrent.newLines - mineCurrent.oldLines; + } else if (hunkBefore(theirsCurrent, mineCurrent)) { + ret.hunks.push(cloneHunk(theirsCurrent, theirsOffset)); + theirsIndex++; + mineOffset += theirsCurrent.newLines - theirsCurrent.oldLines; + } else { + var mergedHunk = { + oldStart: Math.min(mineCurrent.oldStart, theirsCurrent.oldStart), + oldLines: 0, + newStart: Math.min(mineCurrent.newStart + mineOffset, theirsCurrent.oldStart + theirsOffset), + newLines: 0, + lines: [] + }; + mergeLines(mergedHunk, mineCurrent.oldStart, mineCurrent.lines, theirsCurrent.oldStart, theirsCurrent.lines); + theirsIndex++; + mineIndex++; + ret.hunks.push(mergedHunk); + } + } + return ret; + } + function loadPatch(param, base) { + if (typeof param === "string") { + if (/^@@/m.test(param) || /^Index:/m.test(param)) { + return (0, _parse.parsePatch)(param)[0]; + } + if (!base) { + throw new Error("Must provide a base reference or pass in a patch"); + } + return (0, _create.structuredPatch)(void 0, void 0, base, param); + } + return param; + } + function fileNameChanged(patch) { + return patch.newFileName && patch.newFileName !== patch.oldFileName; + } + function selectField(index, mine, theirs) { + if (mine === theirs) { + return mine; + } else { + index.conflict = true; + return { + mine, + theirs + }; + } + } + function hunkBefore(test, check) { + return test.oldStart < check.oldStart && test.oldStart + test.oldLines < check.oldStart; + } + function cloneHunk(hunk, offset) { + return { + oldStart: hunk.oldStart, + oldLines: hunk.oldLines, + newStart: hunk.newStart + offset, + newLines: hunk.newLines, + lines: hunk.lines + }; + } + function mergeLines(hunk, mineOffset, mineLines, theirOffset, theirLines) { + var mine = { + offset: mineOffset, + lines: mineLines, + index: 0 + }, their = { + offset: theirOffset, + lines: theirLines, + index: 0 + }; + insertLeading(hunk, mine, their); + insertLeading(hunk, their, mine); + while (mine.index < mine.lines.length && their.index < their.lines.length) { + var mineCurrent = mine.lines[mine.index], theirCurrent = their.lines[their.index]; + if ((mineCurrent[0] === "-" || mineCurrent[0] === "+") && (theirCurrent[0] === "-" || theirCurrent[0] === "+")) { + mutualChange(hunk, mine, their); + } else if (mineCurrent[0] === "+" && theirCurrent[0] === " ") { + var _hunk$lines; + (_hunk$lines = hunk.lines).push.apply(_hunk$lines, _toConsumableArray(collectChange(mine))); + } else if (theirCurrent[0] === "+" && mineCurrent[0] === " ") { + var _hunk$lines2; + (_hunk$lines2 = hunk.lines).push.apply(_hunk$lines2, _toConsumableArray(collectChange(their))); + } else if (mineCurrent[0] === "-" && theirCurrent[0] === " ") { + removal(hunk, mine, their); + } else if (theirCurrent[0] === "-" && mineCurrent[0] === " ") { + removal(hunk, their, mine, true); + } else if (mineCurrent === theirCurrent) { + hunk.lines.push(mineCurrent); + mine.index++; + their.index++; + } else { + conflict(hunk, collectChange(mine), collectChange(their)); + } + } + insertTrailing(hunk, mine); + insertTrailing(hunk, their); + calcLineCount(hunk); + } + function mutualChange(hunk, mine, their) { + var myChanges = collectChange(mine), theirChanges = collectChange(their); + if (allRemoves(myChanges) && allRemoves(theirChanges)) { + if ((0, _array.arrayStartsWith)(myChanges, theirChanges) && skipRemoveSuperset(their, myChanges, myChanges.length - theirChanges.length)) { + var _hunk$lines3; + (_hunk$lines3 = hunk.lines).push.apply(_hunk$lines3, _toConsumableArray(myChanges)); + return; + } else if ((0, _array.arrayStartsWith)(theirChanges, myChanges) && skipRemoveSuperset(mine, theirChanges, theirChanges.length - myChanges.length)) { + var _hunk$lines4; + (_hunk$lines4 = hunk.lines).push.apply(_hunk$lines4, _toConsumableArray(theirChanges)); + return; + } + } else if ((0, _array.arrayEqual)(myChanges, theirChanges)) { + var _hunk$lines5; + (_hunk$lines5 = hunk.lines).push.apply(_hunk$lines5, _toConsumableArray(myChanges)); + return; + } + conflict(hunk, myChanges, theirChanges); + } + function removal(hunk, mine, their, swap) { + var myChanges = collectChange(mine), theirChanges = collectContext(their, myChanges); + if (theirChanges.merged) { + var _hunk$lines6; + (_hunk$lines6 = hunk.lines).push.apply(_hunk$lines6, _toConsumableArray(theirChanges.merged)); + } else { + conflict(hunk, swap ? theirChanges : myChanges, swap ? myChanges : theirChanges); + } + } + function conflict(hunk, mine, their) { + hunk.conflict = true; + hunk.lines.push({ + conflict: true, + mine, + theirs: their + }); + } + function insertLeading(hunk, insert2, their) { + while (insert2.offset < their.offset && insert2.index < insert2.lines.length) { + var line = insert2.lines[insert2.index++]; + hunk.lines.push(line); + insert2.offset++; + } + } + function insertTrailing(hunk, insert2) { + while (insert2.index < insert2.lines.length) { + var line = insert2.lines[insert2.index++]; + hunk.lines.push(line); + } + } + function collectChange(state) { + var ret = [], operation = state.lines[state.index][0]; + while (state.index < state.lines.length) { + var line = state.lines[state.index]; + if (operation === "-" && line[0] === "+") { + operation = "+"; + } + if (operation === line[0]) { + ret.push(line); + state.index++; + } else { + break; + } + } + return ret; + } + function collectContext(state, matchChanges) { + var changes = [], merged = [], matchIndex = 0, contextChanges = false, conflicted = false; + while (matchIndex < matchChanges.length && state.index < state.lines.length) { + var change = state.lines[state.index], match = matchChanges[matchIndex]; + if (match[0] === "+") { + break; + } + contextChanges = contextChanges || change[0] !== " "; + merged.push(match); + matchIndex++; + if (change[0] === "+") { + conflicted = true; + while (change[0] === "+") { + changes.push(change); + change = state.lines[++state.index]; + } + } + if (match.substr(1) === change.substr(1)) { + changes.push(change); + state.index++; + } else { + conflicted = true; + } + } + if ((matchChanges[matchIndex] || "")[0] === "+" && contextChanges) { + conflicted = true; + } + if (conflicted) { + return changes; + } + while (matchIndex < matchChanges.length) { + merged.push(matchChanges[matchIndex++]); + } + return { + merged, + changes + }; + } + function allRemoves(changes) { + return changes.reduce(function(prev, change) { + return prev && change[0] === "-"; + }, true); + } + function skipRemoveSuperset(state, removeChanges, delta) { + for (var i = 0; i < delta; i++) { + var changeContent = removeChanges[removeChanges.length - delta + i].substr(1); + if (state.lines[state.index + i] !== " " + changeContent) { + return false; + } + } + state.index += delta; + return true; + } + function calcOldNewLineCount(lines) { + var oldLines = 0; + var newLines = 0; + lines.forEach(function(line) { + if (typeof line !== "string") { + var myCount = calcOldNewLineCount(line.mine); + var theirCount = calcOldNewLineCount(line.theirs); + if (oldLines !== void 0) { + if (myCount.oldLines === theirCount.oldLines) { + oldLines += myCount.oldLines; + } else { + oldLines = void 0; + } + } + if (newLines !== void 0) { + if (myCount.newLines === theirCount.newLines) { + newLines += myCount.newLines; + } else { + newLines = void 0; + } + } + } else { + if (newLines !== void 0 && (line[0] === "+" || line[0] === " ")) { + newLines++; + } + if (oldLines !== void 0 && (line[0] === "-" || line[0] === " ")) { + oldLines++; + } + } + }); + return { + oldLines, + newLines + }; + } + } +}); + +// node_modules/diff/lib/convert/dmp.js +var require_dmp = __commonJS({ + "node_modules/diff/lib/convert/dmp.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.convertChangesToDMP = convertChangesToDMP; + function convertChangesToDMP(changes) { + var ret = [], change, operation; + for (var i = 0; i < changes.length; i++) { + change = changes[i]; + if (change.added) { + operation = 1; + } else if (change.removed) { + operation = -1; + } else { + operation = 0; + } + ret.push([operation, change.value]); + } + return ret; + } + } +}); + +// node_modules/diff/lib/convert/xml.js +var require_xml = __commonJS({ + "node_modules/diff/lib/convert/xml.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.convertChangesToXML = convertChangesToXML; + function convertChangesToXML(changes) { + var ret = []; + for (var i = 0; i < changes.length; i++) { + var change = changes[i]; + if (change.added) { + ret.push(""); + } else if (change.removed) { + ret.push(""); + } + ret.push(escapeHTML(change.value)); + if (change.added) { + ret.push(""); + } else if (change.removed) { + ret.push(""); + } + } + return ret.join(""); + } + function escapeHTML(s) { + var n = s; + n = n.replace(/&/g, "&"); + n = n.replace(//g, ">"); + n = n.replace(/"/g, """); + return n; + } + } +}); + +// node_modules/diff/lib/index.js +var require_lib = __commonJS({ + "node_modules/diff/lib/index.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { + value: true + }); + Object.defineProperty(exports, "Diff", { + enumerable: true, + get: function get() { + return _base["default"]; + } + }); + Object.defineProperty(exports, "diffChars", { + enumerable: true, + get: function get() { + return _character.diffChars; + } + }); + Object.defineProperty(exports, "diffWords", { + enumerable: true, + get: function get() { + return _word.diffWords; + } + }); + Object.defineProperty(exports, "diffWordsWithSpace", { + enumerable: true, + get: function get() { + return _word.diffWordsWithSpace; + } + }); + Object.defineProperty(exports, "diffLines", { + enumerable: true, + get: function get() { + return _line.diffLines; + } + }); + Object.defineProperty(exports, "diffTrimmedLines", { + enumerable: true, + get: function get() { + return _line.diffTrimmedLines; + } + }); + Object.defineProperty(exports, "diffSentences", { + enumerable: true, + get: function get() { + return _sentence.diffSentences; + } + }); + Object.defineProperty(exports, "diffCss", { + enumerable: true, + get: function get() { + return _css.diffCss; + } + }); + Object.defineProperty(exports, "diffJson", { + enumerable: true, + get: function get() { + return _json.diffJson; + } + }); + Object.defineProperty(exports, "canonicalize", { + enumerable: true, + get: function get() { + return _json.canonicalize; + } + }); + Object.defineProperty(exports, "diffArrays", { + enumerable: true, + get: function get() { + return _array.diffArrays; + } + }); + Object.defineProperty(exports, "applyPatch", { + enumerable: true, + get: function get() { + return _apply.applyPatch; + } + }); + Object.defineProperty(exports, "applyPatches", { + enumerable: true, + get: function get() { + return _apply.applyPatches; + } + }); + Object.defineProperty(exports, "parsePatch", { + enumerable: true, + get: function get() { + return _parse.parsePatch; + } + }); + Object.defineProperty(exports, "merge", { + enumerable: true, + get: function get() { + return _merge.merge; + } + }); + Object.defineProperty(exports, "structuredPatch", { + enumerable: true, + get: function get() { + return _create.structuredPatch; + } + }); + Object.defineProperty(exports, "createTwoFilesPatch", { + enumerable: true, + get: function get() { + return _create.createTwoFilesPatch; + } + }); + Object.defineProperty(exports, "createPatch", { + enumerable: true, + get: function get() { + return _create.createPatch; + } + }); + Object.defineProperty(exports, "convertChangesToDMP", { + enumerable: true, + get: function get() { + return _dmp.convertChangesToDMP; + } + }); + Object.defineProperty(exports, "convertChangesToXML", { + enumerable: true, + get: function get() { + return _xml.convertChangesToXML; + } + }); + var _base = _interopRequireDefault(require_base()); + var _character = require_character(); + var _word = require_word(); + var _line = require_line(); + var _sentence = require_sentence(); + var _css = require_css(); + var _json = require_json(); + var _array = require_array(); + var _apply = require_apply(); + var _parse = require_parse(); + var _merge = require_merge(); + var _create = require_create(); + var _dmp = require_dmp(); + var _xml = require_xml(); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { "default": obj }; + } + } +}); + +// node_modules/diff2html/lib/rematch.js +var require_rematch = __commonJS({ + "node_modules/diff2html/lib/rematch.js"(exports) { + "use strict"; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.newMatcherFn = exports.newDistanceFn = exports.levenshtein = void 0; + function levenshtein(a, b) { + if (a.length === 0) { + return b.length; + } + if (b.length === 0) { + return a.length; + } + var matrix = []; + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) === a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, Math.min(matrix[i][j - 1] + 1, matrix[i - 1][j] + 1)); + } + } + } + return matrix[b.length][a.length]; + } + exports.levenshtein = levenshtein; + function newDistanceFn(str) { + return function(x, y) { + var xValue = str(x).trim(); + var yValue = str(y).trim(); + var lev = levenshtein(xValue, yValue); + return lev / (xValue.length + yValue.length); + }; + } + exports.newDistanceFn = newDistanceFn; + function newMatcherFn(distance) { + function findBestMatch(a, b, cache) { + if (cache === void 0) { + cache = new Map(); + } + var bestMatchDist = Infinity; + var bestMatch; + for (var i = 0; i < a.length; ++i) { + for (var j = 0; j < b.length; ++j) { + var cacheKey = JSON.stringify([a[i], b[j]]); + var md = void 0; + if (!(cache.has(cacheKey) && (md = cache.get(cacheKey)))) { + md = distance(a[i], b[j]); + cache.set(cacheKey, md); + } + if (md < bestMatchDist) { + bestMatchDist = md; + bestMatch = { indexA: i, indexB: j, score: bestMatchDist }; + } + } + } + return bestMatch; + } + function group(a, b, level, cache) { + if (level === void 0) { + level = 0; + } + if (cache === void 0) { + cache = new Map(); + } + var bm = findBestMatch(a, b, cache); + if (!bm || a.length + b.length < 3) { + return [[a, b]]; + } + var a1 = a.slice(0, bm.indexA); + var b1 = b.slice(0, bm.indexB); + var aMatch = [a[bm.indexA]]; + var bMatch = [b[bm.indexB]]; + var tailA = bm.indexA + 1; + var tailB = bm.indexB + 1; + var a2 = a.slice(tailA); + var b2 = b.slice(tailB); + var group1 = group(a1, b1, level + 1, cache); + var groupMatch = group(aMatch, bMatch, level + 1, cache); + var group2 = group(a2, b2, level + 1, cache); + var result = groupMatch; + if (bm.indexA > 0 || bm.indexB > 0) { + result = group1.concat(result); + } + if (a.length > tailA || b.length > tailB) { + result = result.concat(group2); + } + return result; + } + return group; + } + exports.newMatcherFn = newMatcherFn; + } +}); + +// node_modules/diff2html/lib/render-utils.js +var require_render_utils = __commonJS({ + "node_modules/diff2html/lib/render-utils.js"(exports) { + "use strict"; + var __assign2 = exports && exports.__assign || function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); + }; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.diffHighlight = exports.getFileIcon = exports.getHtmlId = exports.filenameDiff = exports.deconstructLine = exports.escapeForHtml = exports.toCSSClass = exports.defaultRenderConfig = exports.CSSLineClass = void 0; + var jsDiff = __importStar2(require_lib()); + var utils_1 = require_utils(); + var rematch = __importStar2(require_rematch()); + var types_1 = require_types(); + exports.CSSLineClass = { + INSERTS: "d2h-ins", + DELETES: "d2h-del", + CONTEXT: "d2h-cntx", + INFO: "d2h-info", + INSERT_CHANGES: "d2h-ins d2h-change", + DELETE_CHANGES: "d2h-del d2h-change" + }; + exports.defaultRenderConfig = { + matching: types_1.LineMatchingType.NONE, + matchWordsThreshold: 0.25, + maxLineLengthHighlight: 1e4, + diffStyle: types_1.DiffStyleType.WORD + }; + var separator = "/"; + var distance = rematch.newDistanceFn(function(change) { + return change.value; + }); + var matcher = rematch.newMatcherFn(distance); + function isDevNullName(name) { + return name.indexOf("dev/null") !== -1; + } + function removeInsElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/ins>)/g, ""); + } + function removeDelElements(line) { + return line.replace(/(]*>((.|\n)*?)<\/del>)/g, ""); + } + function toCSSClass(lineType) { + switch (lineType) { + case types_1.LineType.CONTEXT: + return exports.CSSLineClass.CONTEXT; + case types_1.LineType.INSERT: + return exports.CSSLineClass.INSERTS; + case types_1.LineType.DELETE: + return exports.CSSLineClass.DELETES; + } + } + exports.toCSSClass = toCSSClass; + function prefixLength(isCombined) { + return isCombined ? 2 : 1; + } + function escapeForHtml(str) { + return str.slice(0).replace(/&/g, "&").replace(//g, ">").replace(/"/g, """).replace(/'/g, "'").replace(/\//g, "/"); + } + exports.escapeForHtml = escapeForHtml; + function deconstructLine(line, isCombined, escape) { + if (escape === void 0) { + escape = true; + } + var indexToSplit = prefixLength(isCombined); + return { + prefix: line.substring(0, indexToSplit), + content: escape ? escapeForHtml(line.substring(indexToSplit)) : line.substring(indexToSplit) + }; + } + exports.deconstructLine = deconstructLine; + function filenameDiff(file) { + var oldFilename = (0, utils_1.unifyPath)(file.oldName); + var newFilename = (0, utils_1.unifyPath)(file.newName); + if (oldFilename !== newFilename && !isDevNullName(oldFilename) && !isDevNullName(newFilename)) { + var prefixPaths = []; + var suffixPaths = []; + var oldFilenameParts = oldFilename.split(separator); + var newFilenameParts = newFilename.split(separator); + var oldFilenamePartsSize = oldFilenameParts.length; + var newFilenamePartsSize = newFilenameParts.length; + var i = 0; + var j = oldFilenamePartsSize - 1; + var k = newFilenamePartsSize - 1; + while (i < j && i < k) { + if (oldFilenameParts[i] === newFilenameParts[i]) { + prefixPaths.push(newFilenameParts[i]); + i += 1; + } else { + break; + } + } + while (j > i && k > i) { + if (oldFilenameParts[j] === newFilenameParts[k]) { + suffixPaths.unshift(newFilenameParts[k]); + j -= 1; + k -= 1; + } else { + break; + } + } + var finalPrefix = prefixPaths.join(separator); + var finalSuffix = suffixPaths.join(separator); + var oldRemainingPath = oldFilenameParts.slice(i, j + 1).join(separator); + var newRemainingPath = newFilenameParts.slice(i, k + 1).join(separator); + if (finalPrefix.length && finalSuffix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } else if (finalPrefix.length) { + return finalPrefix + separator + "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}"; + } else if (finalSuffix.length) { + return "{" + oldRemainingPath + " \u2192 " + newRemainingPath + "}" + separator + finalSuffix; + } + return oldFilename + " \u2192 " + newFilename; + } else if (!isDevNullName(newFilename)) { + return newFilename; + } else { + return oldFilename; + } + } + exports.filenameDiff = filenameDiff; + function getHtmlId(file) { + return "d2h-" + (0, utils_1.hashCode)(filenameDiff(file)).toString().slice(-6); + } + exports.getHtmlId = getHtmlId; + function getFileIcon(file) { + var templateName = "file-changed"; + if (file.isRename) { + templateName = "file-renamed"; + } else if (file.isCopy) { + templateName = "file-renamed"; + } else if (file.isNew) { + templateName = "file-added"; + } else if (file.isDeleted) { + templateName = "file-deleted"; + } else if (file.newName !== file.oldName) { + templateName = "file-renamed"; + } + return templateName; + } + exports.getFileIcon = getFileIcon; + function diffHighlight(diffLine1, diffLine2, isCombined, config) { + if (config === void 0) { + config = {}; + } + var _a2 = __assign2(__assign2({}, exports.defaultRenderConfig), config), matching = _a2.matching, maxLineLengthHighlight = _a2.maxLineLengthHighlight, matchWordsThreshold = _a2.matchWordsThreshold, diffStyle = _a2.diffStyle; + var line1 = deconstructLine(diffLine1, isCombined, false); + var line2 = deconstructLine(diffLine2, isCombined, false); + if (line1.content.length > maxLineLengthHighlight || line2.content.length > maxLineLengthHighlight) { + return { + oldLine: { + prefix: line1.prefix, + content: escapeForHtml(line1.content) + }, + newLine: { + prefix: line2.prefix, + content: escapeForHtml(line2.content) + } + }; + } + var diff = diffStyle === "char" ? jsDiff.diffChars(line1.content, line2.content) : jsDiff.diffWordsWithSpace(line1.content, line2.content); + var changedWords = []; + if (diffStyle === "word" && matching === "words") { + var removed = diff.filter(function(element2) { + return element2.removed; + }); + var added = diff.filter(function(element2) { + return element2.added; + }); + var chunks = matcher(added, removed); + chunks.forEach(function(chunk) { + if (chunk[0].length === 1 && chunk[1].length === 1) { + var dist = distance(chunk[0][0], chunk[1][0]); + if (dist < matchWordsThreshold) { + changedWords.push(chunk[0][0]); + changedWords.push(chunk[1][0]); + } + } + }); + } + var highlightedLine = diff.reduce(function(highlightedLine2, part) { + var elemType = part.added ? "ins" : part.removed ? "del" : null; + var addClass = changedWords.indexOf(part) > -1 ? ' class="d2h-change"' : ""; + var escapedValue = escapeForHtml(part.value); + return elemType !== null ? highlightedLine2 + "<" + elemType + addClass + ">" + escapedValue + "" : "" + highlightedLine2 + escapedValue; + }, ""); + return { + oldLine: { + prefix: line1.prefix, + content: removeInsElements(highlightedLine) + }, + newLine: { + prefix: line2.prefix, + content: removeDelElements(highlightedLine) + } + }; + } + exports.diffHighlight = diffHighlight; + } +}); + +// node_modules/diff2html/lib/file-list-renderer.js +var require_file_list_renderer = __commonJS({ + "node_modules/diff2html/lib/file-list-renderer.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.render = void 0; + var renderUtils = __importStar2(require_render_utils()); + var baseTemplatesPath = "file-summary"; + var iconsBaseTemplatesPath = "icon"; + function render(diffFiles, hoganUtils) { + var files = diffFiles.map(function(file) { + return hoganUtils.render(baseTemplatesPath, "line", { + fileHtmlId: renderUtils.getHtmlId(file), + oldName: file.oldName, + newName: file.newName, + fileName: renderUtils.filenameDiff(file), + deletedLines: "-" + file.deletedLines, + addedLines: "+" + file.addedLines + }, { + fileIcon: hoganUtils.template(iconsBaseTemplatesPath, renderUtils.getFileIcon(file)) + }); + }).join("\n"); + return hoganUtils.render(baseTemplatesPath, "wrapper", { + filesNumber: diffFiles.length, + files + }); + } + exports.render = render; + } +}); + +// node_modules/diff2html/lib/line-by-line-renderer.js +var require_line_by_line_renderer = __commonJS({ + "node_modules/diff2html/lib/line-by-line-renderer.js"(exports) { + "use strict"; + var __assign2 = exports && exports.__assign || function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); + }; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defaultLineByLineRendererConfig = void 0; + var Rematch = __importStar2(require_rematch()); + var renderUtils = __importStar2(require_render_utils()); + var types_1 = require_types(); + exports.defaultLineByLineRendererConfig = __assign2(__assign2({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); + var genericTemplatesPath = "generic"; + var baseTemplatesPath = "line-by-line"; + var iconsBaseTemplatesPath = "icon"; + var tagsBaseTemplatesPath = "tag"; + var LineByLineRenderer = function() { + function LineByLineRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign2(__assign2({}, exports.defaultLineByLineRendererConfig), config); + } + LineByLineRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); + }; + LineByLineRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: renderUtils.getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: renderUtils.filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + LineByLineRenderer2.prototype.generateEmptyDiff = function() { + return this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-line", + CSSLineClass: renderUtils.CSSLineClass + }); + }; + LineByLineRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function(e) { + return renderUtils.deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var lines = _this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass: renderUtils.CSSLineClass, + blockHeader: file.isTooBig ? block.header : renderUtils.escapeForHtml(block.header), + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line" + }); + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + lines += left2; + lines += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + lines += _this.generateSingleLineHtml({ + type: renderUtils.CSSLineClass.CONTEXT, + prefix, + content, + oldNumber: line.oldNumber, + newNumber: line.newNumber + }); + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + lines += left; + lines += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return lines; + }).join("\n"); + }; + LineByLineRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== types_1.LineType.INSERT && newLines.length || diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === types_1.LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === types_1.LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + LineByLineRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]]; + }; + LineByLineRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff = oldLine !== void 0 && newLine !== void 0 ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { + prefix: diff.oldLine.prefix, + content: diff.oldLine.content, + type: renderUtils.CSSLineClass.DELETE_CHANGES + } : __assign2(__assign2({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) })), { oldNumber: oldLine.oldNumber, newNumber: oldLine.newNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { + prefix: diff.newLine.prefix, + content: diff.newLine.content, + type: renderUtils.CSSLineClass.INSERT_CHANGES + } : __assign2(__assign2({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) })), { oldNumber: newLine.oldNumber, newNumber: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + LineByLineRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleLineHtml(oldLine), + right: this.generateSingleLineHtml(newLine) + }; + }; + LineByLineRenderer2.prototype.generateSingleLineHtml = function(line) { + if (line === void 0) + return ""; + var lineNumberHtml = this.hoganUtils.render(baseTemplatesPath, "numbers", { + oldNumber: line.oldNumber || "", + newNumber: line.newNumber || "" + }); + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: line.type, + lineClass: "d2h-code-linenumber", + contentClass: "d2h-code-line", + prefix: line.prefix === " " ? " " : line.prefix, + content: line.content, + lineNumber: lineNumberHtml + }); + }; + return LineByLineRenderer2; + }(); + exports.default = LineByLineRenderer; + } +}); + +// node_modules/diff2html/lib/side-by-side-renderer.js +var require_side_by_side_renderer = __commonJS({ + "node_modules/diff2html/lib/side-by-side-renderer.js"(exports) { + "use strict"; + var __assign2 = exports && exports.__assign || function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); + }; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defaultSideBySideRendererConfig = void 0; + var Rematch = __importStar2(require_rematch()); + var renderUtils = __importStar2(require_render_utils()); + var types_1 = require_types(); + exports.defaultSideBySideRendererConfig = __assign2(__assign2({}, renderUtils.defaultRenderConfig), { renderNothingWhenEmpty: false, matchingMaxComparisons: 2500, maxLineSizeInBlockForComparison: 200 }); + var genericTemplatesPath = "generic"; + var baseTemplatesPath = "side-by-side"; + var iconsBaseTemplatesPath = "icon"; + var tagsBaseTemplatesPath = "tag"; + var SideBySideRenderer = function() { + function SideBySideRenderer2(hoganUtils, config) { + if (config === void 0) { + config = {}; + } + this.hoganUtils = hoganUtils; + this.config = __assign2(__assign2({}, exports.defaultSideBySideRendererConfig), config); + } + SideBySideRenderer2.prototype.render = function(diffFiles) { + var _this = this; + var diffsHtml = diffFiles.map(function(file) { + var diffs; + if (file.blocks.length) { + diffs = _this.generateFileHtml(file); + } else { + diffs = _this.generateEmptyDiff(); + } + return _this.makeFileDiffHtml(file, diffs); + }).join("\n"); + return this.hoganUtils.render(genericTemplatesPath, "wrapper", { content: diffsHtml }); + }; + SideBySideRenderer2.prototype.makeFileDiffHtml = function(file, diffs) { + if (this.config.renderNothingWhenEmpty && Array.isArray(file.blocks) && file.blocks.length === 0) + return ""; + var fileDiffTemplate = this.hoganUtils.template(baseTemplatesPath, "file-diff"); + var filePathTemplate = this.hoganUtils.template(genericTemplatesPath, "file-path"); + var fileIconTemplate = this.hoganUtils.template(iconsBaseTemplatesPath, "file"); + var fileTagTemplate = this.hoganUtils.template(tagsBaseTemplatesPath, renderUtils.getFileIcon(file)); + return fileDiffTemplate.render({ + file, + fileHtmlId: renderUtils.getHtmlId(file), + diffs, + filePath: filePathTemplate.render({ + fileDiffName: renderUtils.filenameDiff(file) + }, { + fileIcon: fileIconTemplate, + fileTag: fileTagTemplate + }) + }); + }; + SideBySideRenderer2.prototype.generateEmptyDiff = function() { + return { + right: "", + left: this.hoganUtils.render(genericTemplatesPath, "empty-diff", { + contentClass: "d2h-code-side-line", + CSSLineClass: renderUtils.CSSLineClass + }) + }; + }; + SideBySideRenderer2.prototype.generateFileHtml = function(file) { + var _this = this; + var matcher = Rematch.newMatcherFn(Rematch.newDistanceFn(function(e) { + return renderUtils.deconstructLine(e.content, file.isCombined).content; + })); + return file.blocks.map(function(block) { + var fileHtml = { + left: _this.makeHeaderHtml(block.header, file), + right: _this.makeHeaderHtml("") + }; + _this.applyLineGroupping(block).forEach(function(_a2) { + var contextLines = _a2[0], oldLines = _a2[1], newLines = _a2[2]; + if (oldLines.length && newLines.length && !contextLines.length) { + _this.applyRematchMatching(oldLines, newLines, matcher).map(function(_a3) { + var oldLines2 = _a3[0], newLines2 = _a3[1]; + var _b2 = _this.processChangedLines(file.isCombined, oldLines2, newLines2), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (contextLines.length) { + contextLines.forEach(function(line) { + var _a3 = renderUtils.deconstructLine(line.content, file.isCombined), prefix = _a3.prefix, content = _a3.content; + var _b2 = _this.generateLineHtml({ + type: renderUtils.CSSLineClass.CONTEXT, + prefix, + content, + number: line.oldNumber + }, { + type: renderUtils.CSSLineClass.CONTEXT, + prefix, + content, + number: line.newNumber + }), left2 = _b2.left, right2 = _b2.right; + fileHtml.left += left2; + fileHtml.right += right2; + }); + } else if (oldLines.length || newLines.length) { + var _b = _this.processChangedLines(file.isCombined, oldLines, newLines), left = _b.left, right = _b.right; + fileHtml.left += left; + fileHtml.right += right; + } else { + console.error("Unknown state reached while processing groups of lines", contextLines, oldLines, newLines); + } + }); + return fileHtml; + }).reduce(function(accomulated, html2) { + return { left: accomulated.left + html2.left, right: accomulated.right + html2.right }; + }, { left: "", right: "" }); + }; + SideBySideRenderer2.prototype.applyLineGroupping = function(block) { + var blockLinesGroups = []; + var oldLines = []; + var newLines = []; + for (var i = 0; i < block.lines.length; i++) { + var diffLine = block.lines[i]; + if (diffLine.type !== types_1.LineType.INSERT && newLines.length || diffLine.type === types_1.LineType.CONTEXT && oldLines.length > 0) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + if (diffLine.type === types_1.LineType.CONTEXT) { + blockLinesGroups.push([[diffLine], [], []]); + } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length === 0) { + blockLinesGroups.push([[], [], [diffLine]]); + } else if (diffLine.type === types_1.LineType.INSERT && oldLines.length > 0) { + newLines.push(diffLine); + } else if (diffLine.type === types_1.LineType.DELETE) { + oldLines.push(diffLine); + } + } + if (oldLines.length || newLines.length) { + blockLinesGroups.push([[], oldLines, newLines]); + oldLines = []; + newLines = []; + } + return blockLinesGroups; + }; + SideBySideRenderer2.prototype.applyRematchMatching = function(oldLines, newLines, matcher) { + var comparisons = oldLines.length * newLines.length; + var maxLineSizeInBlock = Math.max.apply(null, [0].concat(oldLines.concat(newLines).map(function(elem) { + return elem.content.length; + }))); + var doMatching = comparisons < this.config.matchingMaxComparisons && maxLineSizeInBlock < this.config.maxLineSizeInBlockForComparison && (this.config.matching === "lines" || this.config.matching === "words"); + return doMatching ? matcher(oldLines, newLines) : [[oldLines, newLines]]; + }; + SideBySideRenderer2.prototype.makeHeaderHtml = function(blockHeader, file) { + return this.hoganUtils.render(genericTemplatesPath, "block-header", { + CSSLineClass: renderUtils.CSSLineClass, + blockHeader: (file === null || file === void 0 ? void 0 : file.isTooBig) ? blockHeader : renderUtils.escapeForHtml(blockHeader), + lineClass: "d2h-code-side-linenumber", + contentClass: "d2h-code-side-line" + }); + }; + SideBySideRenderer2.prototype.processChangedLines = function(isCombined, oldLines, newLines) { + var fileHtml = { + right: "", + left: "" + }; + var maxLinesNumber = Math.max(oldLines.length, newLines.length); + for (var i = 0; i < maxLinesNumber; i++) { + var oldLine = oldLines[i]; + var newLine = newLines[i]; + var diff = oldLine !== void 0 && newLine !== void 0 ? renderUtils.diffHighlight(oldLine.content, newLine.content, isCombined, this.config) : void 0; + var preparedOldLine = oldLine !== void 0 && oldLine.oldNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { + prefix: diff.oldLine.prefix, + content: diff.oldLine.content, + type: renderUtils.CSSLineClass.DELETE_CHANGES + } : __assign2(__assign2({}, renderUtils.deconstructLine(oldLine.content, isCombined)), { type: renderUtils.toCSSClass(oldLine.type) })), { number: oldLine.oldNumber }) : void 0; + var preparedNewLine = newLine !== void 0 && newLine.newNumber !== void 0 ? __assign2(__assign2({}, diff !== void 0 ? { + prefix: diff.newLine.prefix, + content: diff.newLine.content, + type: renderUtils.CSSLineClass.INSERT_CHANGES + } : __assign2(__assign2({}, renderUtils.deconstructLine(newLine.content, isCombined)), { type: renderUtils.toCSSClass(newLine.type) })), { number: newLine.newNumber }) : void 0; + var _a2 = this.generateLineHtml(preparedOldLine, preparedNewLine), left = _a2.left, right = _a2.right; + fileHtml.left += left; + fileHtml.right += right; + } + return fileHtml; + }; + SideBySideRenderer2.prototype.generateLineHtml = function(oldLine, newLine) { + return { + left: this.generateSingleHtml(oldLine), + right: this.generateSingleHtml(newLine) + }; + }; + SideBySideRenderer2.prototype.generateSingleHtml = function(line) { + var lineClass = "d2h-code-side-linenumber"; + var contentClass = "d2h-code-side-line"; + return this.hoganUtils.render(genericTemplatesPath, "line", { + type: (line === null || line === void 0 ? void 0 : line.type) || renderUtils.CSSLineClass.CONTEXT + " d2h-emptyplaceholder", + lineClass: line !== void 0 ? lineClass : lineClass + " d2h-code-side-emptyplaceholder", + contentClass: line !== void 0 ? contentClass : contentClass + " d2h-code-side-emptyplaceholder", + prefix: (line === null || line === void 0 ? void 0 : line.prefix) === " " ? " " : line === null || line === void 0 ? void 0 : line.prefix, + content: line === null || line === void 0 ? void 0 : line.content, + lineNumber: line === null || line === void 0 ? void 0 : line.number + }); + }; + return SideBySideRenderer2; + }(); + exports.default = SideBySideRenderer; + } +}); + +// node_modules/hogan.js/lib/compiler.js +var require_compiler = __commonJS({ + "node_modules/hogan.js/lib/compiler.js"(exports) { + (function(Hogan2) { + var rIsWhitespace = /\S/, rQuot = /\"/g, rNewline = /\n/g, rCr = /\r/g, rSlash = /\\/g, rLineSep = /\u2028/, rParagraphSep = /\u2029/; + Hogan2.tags = { + "#": 1, + "^": 2, + "<": 3, + "$": 4, + "/": 5, + "!": 6, + ">": 7, + "=": 8, + "_v": 9, + "{": 10, + "&": 11, + "_t": 12 + }; + Hogan2.scan = function scan(text2, delimiters) { + var len = text2.length, IN_TEXT = 0, IN_TAG_TYPE = 1, IN_TAG = 2, state = IN_TEXT, tagType = null, tag = null, buf = "", tokens = [], seenTag = false, i = 0, lineStart = 0, otag = "{{", ctag = "}}"; + function addBuf() { + if (buf.length > 0) { + tokens.push({ tag: "_t", text: new String(buf) }); + buf = ""; + } + } + function lineIsWhitespace() { + var isAllWhitespace = true; + for (var j = lineStart; j < tokens.length; j++) { + isAllWhitespace = Hogan2.tags[tokens[j].tag] < Hogan2.tags["_v"] || tokens[j].tag == "_t" && tokens[j].text.match(rIsWhitespace) === null; + if (!isAllWhitespace) { + return false; + } + } + return isAllWhitespace; + } + function filterLine(haveSeenTag, noNewLine) { + addBuf(); + if (haveSeenTag && lineIsWhitespace()) { + for (var j = lineStart, next; j < tokens.length; j++) { + if (tokens[j].text) { + if ((next = tokens[j + 1]) && next.tag == ">") { + next.indent = tokens[j].text.toString(); + } + tokens.splice(j, 1); + } + } + } else if (!noNewLine) { + tokens.push({ tag: "\n" }); + } + seenTag = false; + lineStart = tokens.length; + } + function changeDelimiters(text3, index) { + var close = "=" + ctag, closeIndex = text3.indexOf(close, index), delimiters2 = trim(text3.substring(text3.indexOf("=", index) + 1, closeIndex)).split(" "); + otag = delimiters2[0]; + ctag = delimiters2[delimiters2.length - 1]; + return closeIndex + close.length - 1; + } + if (delimiters) { + delimiters = delimiters.split(" "); + otag = delimiters[0]; + ctag = delimiters[1]; + } + for (i = 0; i < len; i++) { + if (state == IN_TEXT) { + if (tagChange(otag, text2, i)) { + --i; + addBuf(); + state = IN_TAG_TYPE; + } else { + if (text2.charAt(i) == "\n") { + filterLine(seenTag); + } else { + buf += text2.charAt(i); + } + } + } else if (state == IN_TAG_TYPE) { + i += otag.length - 1; + tag = Hogan2.tags[text2.charAt(i + 1)]; + tagType = tag ? text2.charAt(i + 1) : "_v"; + if (tagType == "=") { + i = changeDelimiters(text2, i); + state = IN_TEXT; + } else { + if (tag) { + i++; + } + state = IN_TAG; + } + seenTag = i; + } else { + if (tagChange(ctag, text2, i)) { + tokens.push({ + tag: tagType, + n: trim(buf), + otag, + ctag, + i: tagType == "/" ? seenTag - otag.length : i + ctag.length + }); + buf = ""; + i += ctag.length - 1; + state = IN_TEXT; + if (tagType == "{") { + if (ctag == "}}") { + i++; + } else { + cleanTripleStache(tokens[tokens.length - 1]); + } + } + } else { + buf += text2.charAt(i); + } + } + } + filterLine(seenTag, true); + return tokens; + }; + function cleanTripleStache(token) { + if (token.n.substr(token.n.length - 1) === "}") { + token.n = token.n.substring(0, token.n.length - 1); + } + } + function trim(s) { + if (s.trim) { + return s.trim(); + } + return s.replace(/^\s*|\s*$/g, ""); + } + function tagChange(tag, text2, index) { + if (text2.charAt(index) != tag.charAt(0)) { + return false; + } + for (var i = 1, l = tag.length; i < l; i++) { + if (text2.charAt(index + i) != tag.charAt(i)) { + return false; + } + } + return true; + } + var allowedInSuper = { "_t": true, "\n": true, "$": true, "/": true }; + function buildTree(tokens, kind, stack, customTags) { + var instructions = [], opener = null, tail = null, token = null; + tail = stack[stack.length - 1]; + while (tokens.length > 0) { + token = tokens.shift(); + if (tail && tail.tag == "<" && !(token.tag in allowedInSuper)) { + throw new Error("Illegal content in < super tag."); + } + if (Hogan2.tags[token.tag] <= Hogan2.tags["$"] || isOpener(token, customTags)) { + stack.push(token); + token.nodes = buildTree(tokens, token.tag, stack, customTags); + } else if (token.tag == "/") { + if (stack.length === 0) { + throw new Error("Closing tag without opener: /" + token.n); + } + opener = stack.pop(); + if (token.n != opener.n && !isCloser(token.n, opener.n, customTags)) { + throw new Error("Nesting error: " + opener.n + " vs. " + token.n); + } + opener.end = token.i; + return instructions; + } else if (token.tag == "\n") { + token.last = tokens.length == 0 || tokens[0].tag == "\n"; + } + instructions.push(token); + } + if (stack.length > 0) { + throw new Error("missing closing tag: " + stack.pop().n); + } + return instructions; + } + function isOpener(token, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].o == token.n) { + token.tag = "#"; + return true; + } + } + } + function isCloser(close, open, tags) { + for (var i = 0, l = tags.length; i < l; i++) { + if (tags[i].c == close && tags[i].o == open) { + return true; + } + } + } + function stringifySubstitutions(obj) { + var items = []; + for (var key2 in obj) { + items.push('"' + esc(key2) + '": function(c,p,t,i) {' + obj[key2] + "}"); + } + return "{ " + items.join(",") + " }"; + } + function stringifyPartials(codeObj) { + var partials = []; + for (var key2 in codeObj.partials) { + partials.push('"' + esc(key2) + '":{name:"' + esc(codeObj.partials[key2].name) + '", ' + stringifyPartials(codeObj.partials[key2]) + "}"); + } + return "partials: {" + partials.join(",") + "}, subs: " + stringifySubstitutions(codeObj.subs); + } + Hogan2.stringify = function(codeObj, text2, options) { + return "{code: function (c,p,i) { " + Hogan2.wrapMain(codeObj.code) + " }," + stringifyPartials(codeObj) + "}"; + }; + var serialNo = 0; + Hogan2.generate = function(tree, text2, options) { + serialNo = 0; + var context = { code: "", subs: {}, partials: {} }; + Hogan2.walk(tree, context); + if (options.asString) { + return this.stringify(context, text2, options); + } + return this.makeTemplate(context, text2, options); + }; + Hogan2.wrapMain = function(code) { + return 'var t=this;t.b(i=i||"");' + code + "return t.fl();"; + }; + Hogan2.template = Hogan2.Template; + Hogan2.makeTemplate = function(codeObj, text2, options) { + var template = this.makePartials(codeObj); + template.code = new Function("c", "p", "i", this.wrapMain(codeObj.code)); + return new this.template(template, text2, this, options); + }; + Hogan2.makePartials = function(codeObj) { + var key2, template = { subs: {}, partials: codeObj.partials, name: codeObj.name }; + for (key2 in template.partials) { + template.partials[key2] = this.makePartials(template.partials[key2]); + } + for (key2 in codeObj.subs) { + template.subs[key2] = new Function("c", "p", "t", "i", codeObj.subs[key2]); + } + return template; + }; + function esc(s) { + return s.replace(rSlash, "\\\\").replace(rQuot, '\\"').replace(rNewline, "\\n").replace(rCr, "\\r").replace(rLineSep, "\\u2028").replace(rParagraphSep, "\\u2029"); + } + function chooseMethod(s) { + return ~s.indexOf(".") ? "d" : "f"; + } + function createPartial(node, context) { + var prefix = "<" + (context.prefix || ""); + var sym = prefix + node.n + serialNo++; + context.partials[sym] = { name: node.n, partials: {} }; + context.code += 't.b(t.rp("' + esc(sym) + '",c,p,"' + (node.indent || "") + '"));'; + return sym; + } + Hogan2.codegen = { + "#": function(node, context) { + context.code += "if(t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,0,' + node.i + "," + node.end + ',"' + node.otag + " " + node.ctag + '")){t.rs(c,p,function(c,p,t){'; + Hogan2.walk(node.nodes, context); + context.code += "});c.pop();}"; + }, + "^": function(node, context) { + context.code += "if(!t.s(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,1),c,p,1,0,0,"")){'; + Hogan2.walk(node.nodes, context); + context.code += "};"; + }, + ">": createPartial, + "<": function(node, context) { + var ctx = { partials: {}, code: "", subs: {}, inPartial: true }; + Hogan2.walk(node.nodes, ctx); + var template = context.partials[createPartial(node, context)]; + template.subs = ctx.subs; + template.partials = ctx.partials; + }, + "$": function(node, context) { + var ctx = { subs: {}, code: "", partials: context.partials, prefix: node.n }; + Hogan2.walk(node.nodes, ctx); + context.subs[node.n] = ctx.code; + if (!context.inPartial) { + context.code += 't.sub("' + esc(node.n) + '",c,p,i);'; + } + }, + "\n": function(node, context) { + context.code += write('"\\n"' + (node.last ? "" : " + i")); + }, + "_v": function(node, context) { + context.code += "t.b(t.v(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + }, + "_t": function(node, context) { + context.code += write('"' + esc(node.text) + '"'); + }, + "{": tripleStache, + "&": tripleStache + }; + function tripleStache(node, context) { + context.code += "t.b(t.t(t." + chooseMethod(node.n) + '("' + esc(node.n) + '",c,p,0)));'; + } + function write(s) { + return "t.b(" + s + ");"; + } + Hogan2.walk = function(nodelist, context) { + var func; + for (var i = 0, l = nodelist.length; i < l; i++) { + func = Hogan2.codegen[nodelist[i].tag]; + func && func(nodelist[i], context); + } + return context; + }; + Hogan2.parse = function(tokens, text2, options) { + options = options || {}; + return buildTree(tokens, "", [], options.sectionTags || []); + }; + Hogan2.cache = {}; + Hogan2.cacheKey = function(text2, options) { + return [text2, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join("||"); + }; + Hogan2.compile = function(text2, options) { + options = options || {}; + var key2 = Hogan2.cacheKey(text2, options); + var template = this.cache[key2]; + if (template) { + var partials = template.partials; + for (var name in partials) { + delete partials[name].instance; + } + return template; + } + template = this.generate(this.parse(this.scan(text2, options.delimiters), text2, options), text2, options); + return this.cache[key2] = template; + }; + })(typeof exports !== "undefined" ? exports : Hogan); + } +}); + +// node_modules/hogan.js/lib/template.js +var require_template = __commonJS({ + "node_modules/hogan.js/lib/template.js"(exports) { + var Hogan2 = {}; + (function(Hogan3) { + Hogan3.Template = function(codeObj, text2, compiler, options) { + codeObj = codeObj || {}; + this.r = codeObj.code || this.r; + this.c = compiler; + this.options = options || {}; + this.text = text2 || ""; + this.partials = codeObj.partials || {}; + this.subs = codeObj.subs || {}; + this.buf = ""; + }; + Hogan3.Template.prototype = { + r: function(context, partials, indent) { + return ""; + }, + v: hoganEscape, + t: coerceToString, + render: function render(context, partials, indent) { + return this.ri([context], partials || {}, indent); + }, + ri: function(context, partials, indent) { + return this.r(context, partials, indent); + }, + ep: function(symbol, partials) { + var partial = this.partials[symbol]; + var template = partials[partial.name]; + if (partial.instance && partial.base == template) { + return partial.instance; + } + if (typeof template == "string") { + if (!this.c) { + throw new Error("No compiler available."); + } + template = this.c.compile(template, this.options); + } + if (!template) { + return null; + } + this.partials[symbol].base = template; + if (partial.subs) { + if (!partials.stackText) + partials.stackText = {}; + for (key in partial.subs) { + if (!partials.stackText[key]) { + partials.stackText[key] = this.activeSub !== void 0 && partials.stackText[this.activeSub] ? partials.stackText[this.activeSub] : this.text; + } + } + template = createSpecializedPartial(template, partial.subs, partial.partials, this.stackSubs, this.stackPartials, partials.stackText); + } + this.partials[symbol].instance = template; + return template; + }, + rp: function(symbol, context, partials, indent) { + var partial = this.ep(symbol, partials); + if (!partial) { + return ""; + } + return partial.ri(context, partials, indent); + }, + rs: function(context, partials, section) { + var tail = context[context.length - 1]; + if (!isArray(tail)) { + section(context, partials, this); + return; + } + for (var i = 0; i < tail.length; i++) { + context.push(tail[i]); + section(context, partials, this); + context.pop(); + } + }, + s: function(val, ctx, partials, inverted, start, end, tags) { + var pass; + if (isArray(val) && val.length === 0) { + return false; + } + if (typeof val == "function") { + val = this.ms(val, ctx, partials, inverted, start, end, tags); + } + pass = !!val; + if (!inverted && pass && ctx) { + ctx.push(typeof val == "object" ? val : ctx[ctx.length - 1]); + } + return pass; + }, + d: function(key2, ctx, partials, returnFound) { + var found, names = key2.split("."), val = this.f(names[0], ctx, partials, returnFound), doModelGet = this.options.modelGet, cx = null; + if (key2 === "." && isArray(ctx[ctx.length - 2])) { + val = ctx[ctx.length - 1]; + } else { + for (var i = 1; i < names.length; i++) { + found = findInScope(names[i], val, doModelGet); + if (found !== void 0) { + cx = val; + val = found; + } else { + val = ""; + } + } + } + if (returnFound && !val) { + return false; + } + if (!returnFound && typeof val == "function") { + ctx.push(cx); + val = this.mv(val, ctx, partials); + ctx.pop(); + } + return val; + }, + f: function(key2, ctx, partials, returnFound) { + var val = false, v = null, found = false, doModelGet = this.options.modelGet; + for (var i = ctx.length - 1; i >= 0; i--) { + v = ctx[i]; + val = findInScope(key2, v, doModelGet); + if (val !== void 0) { + found = true; + break; + } + } + if (!found) { + return returnFound ? false : ""; + } + if (!returnFound && typeof val == "function") { + val = this.mv(val, ctx, partials); + } + return val; + }, + ls: function(func, cx, partials, text2, tags) { + var oldTags = this.options.delimiters; + this.options.delimiters = tags; + this.b(this.ct(coerceToString(func.call(cx, text2)), cx, partials)); + this.options.delimiters = oldTags; + return false; + }, + ct: function(text2, cx, partials) { + if (this.options.disableLambda) { + throw new Error("Lambda features disabled."); + } + return this.c.compile(text2, this.options).render(cx, partials); + }, + b: function(s) { + this.buf += s; + }, + fl: function() { + var r = this.buf; + this.buf = ""; + return r; + }, + ms: function(func, ctx, partials, inverted, start, end, tags) { + var textSource, cx = ctx[ctx.length - 1], result = func.call(cx); + if (typeof result == "function") { + if (inverted) { + return true; + } else { + textSource = this.activeSub && this.subsText && this.subsText[this.activeSub] ? this.subsText[this.activeSub] : this.text; + return this.ls(result, cx, partials, textSource.substring(start, end), tags); + } + } + return result; + }, + mv: function(func, ctx, partials) { + var cx = ctx[ctx.length - 1]; + var result = func.call(cx); + if (typeof result == "function") { + return this.ct(coerceToString(result.call(cx)), cx, partials); + } + return result; + }, + sub: function(name, context, partials, indent) { + var f = this.subs[name]; + if (f) { + this.activeSub = name; + f(context, partials, this, indent); + this.activeSub = false; + } + } + }; + function findInScope(key2, scope, doModelGet) { + var val; + if (scope && typeof scope == "object") { + if (scope[key2] !== void 0) { + val = scope[key2]; + } else if (doModelGet && scope.get && typeof scope.get == "function") { + val = scope.get(key2); + } + } + return val; + } + function createSpecializedPartial(instance5, subs, partials, stackSubs, stackPartials, stackText) { + function PartialTemplate() { + } + ; + PartialTemplate.prototype = instance5; + function Substitutions() { + } + ; + Substitutions.prototype = instance5.subs; + var key2; + var partial = new PartialTemplate(); + partial.subs = new Substitutions(); + partial.subsText = {}; + partial.buf = ""; + stackSubs = stackSubs || {}; + partial.stackSubs = stackSubs; + partial.subsText = stackText; + for (key2 in subs) { + if (!stackSubs[key2]) + stackSubs[key2] = subs[key2]; + } + for (key2 in stackSubs) { + partial.subs[key2] = stackSubs[key2]; + } + stackPartials = stackPartials || {}; + partial.stackPartials = stackPartials; + for (key2 in partials) { + if (!stackPartials[key2]) + stackPartials[key2] = partials[key2]; + } + for (key2 in stackPartials) { + partial.partials[key2] = stackPartials[key2]; + } + return partial; + } + var rAmp = /&/g, rLt = //g, rApos = /\'/g, rQuot = /\"/g, hChars = /[&<>\"\']/; + function coerceToString(val) { + return String(val === null || val === void 0 ? "" : val); + } + function hoganEscape(str) { + str = coerceToString(str); + return hChars.test(str) ? str.replace(rAmp, "&").replace(rLt, "<").replace(rGt, ">").replace(rApos, "'").replace(rQuot, """) : str; + } + var isArray = Array.isArray || function(a) { + return Object.prototype.toString.call(a) === "[object Array]"; + }; + })(typeof exports !== "undefined" ? exports : Hogan2); + } +}); + +// node_modules/hogan.js/lib/hogan.js +var require_hogan = __commonJS({ + "node_modules/hogan.js/lib/hogan.js"(exports, module2) { + var Hogan2 = require_compiler(); + Hogan2.Template = require_template().Template; + Hogan2.template = Hogan2.Template; + module2.exports = Hogan2; + } +}); + +// node_modules/diff2html/lib/diff2html-templates.js +var require_diff2html_templates = __commonJS({ + "node_modules/diff2html/lib/diff2html-templates.js"(exports) { + "use strict"; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.defaultTemplates = void 0; + var Hogan2 = __importStar2(require_hogan()); + exports.defaultTemplates = {}; + exports.defaultTemplates["file-summary-line"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
  • '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("addedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b(t.v(t.f("deletedLines", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
  • "); + return t.fl(); + }, partials: { "'); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' Files changed ('); + t.b(t.v(t.f("filesNumber", c, p, 0))); + t.b(")"); + t.b("\n" + i); + t.b(' hide'); + t.b("\n" + i); + t.b(' show'); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
      '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("files", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(""); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["generic-block-header"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b(t.t(t.f("blockHeader", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["generic-empty-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" File without changes"); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["generic-file-path"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b(''); + t.b("\n" + i); + t.b(t.rp("'); + t.b(t.v(t.f("fileDiffName", c, p, 0))); + t.b(""); + t.b("\n" + i); + t.b(t.rp(""); + t.b("\n" + i); + t.b('"); + return t.fl(); + }, partials: { ""); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("lineNumber", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + if (t.s(t.f("prefix", c, p, 1), c, p, 0, 162, 238, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("prefix", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("prefix", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('  '); + t.b("\n" + i); + } + ; + if (t.s(t.f("content", c, p, 1), c, p, 0, 371, 445, "{{ }}")) { + t.rs(c, p, function(c2, p2, t2) { + t2.b(' '); + t2.b(t2.t(t2.f("content", c2, p2, 0))); + t2.b(""); + t2.b("\n" + i); + }); + c.pop(); + } + if (!t.s(t.f("content", c, p, 1), c, p, 1, 0, 0, "")) { + t.b('
    '); + t.b("\n" + i); + } + ; + t.b("
    "); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b(""); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["generic-wrapper"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("content", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["icon-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["icon-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["icon-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["icon-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["icon-file"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('"); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["line-by-line-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("diffs", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["line-by-line-numbers"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b(t.v(t.f("oldNumber", c, p, 0))); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b(t.v(t.f("newNumber", c, p, 0))); + t.b("
    "); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["side-by-side-file-diff"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.f("filePath", c, p, 0))); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.left", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b('
    '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(' '); + t.b("\n" + i); + t.b(" "); + t.b(t.t(t.d("diffs.right", c, p, 0))); + t.b("\n" + i); + t.b(" "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + t.b("\n" + i); + t.b("
    "); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["tag-file-added"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('ADDED'); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["tag-file-changed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('CHANGED'); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["tag-file-deleted"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('DELETED'); + return t.fl(); + }, partials: {}, subs: {} }); + exports.defaultTemplates["tag-file-renamed"] = new Hogan2.Template({ code: function(c, p, i) { + var t = this; + t.b(i = i || ""); + t.b('RENAMED'); + return t.fl(); + }, partials: {}, subs: {} }); + } +}); + +// node_modules/diff2html/lib/hoganjs-utils.js +var require_hoganjs_utils = __commonJS({ + "node_modules/diff2html/lib/hoganjs-utils.js"(exports) { + "use strict"; + var __assign2 = exports && exports.__assign || function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); + }; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + var Hogan2 = __importStar2(require_hogan()); + var diff2html_templates_1 = require_diff2html_templates(); + var HoganJsUtils = function() { + function HoganJsUtils2(_a2) { + var _b = _a2.compiledTemplates, compiledTemplates = _b === void 0 ? {} : _b, _c = _a2.rawTemplates, rawTemplates = _c === void 0 ? {} : _c; + var compiledRawTemplates = Object.entries(rawTemplates).reduce(function(previousTemplates, _a3) { + var _b2; + var name = _a3[0], templateString = _a3[1]; + var compiledTemplate = Hogan2.compile(templateString, { asString: false }); + return __assign2(__assign2({}, previousTemplates), (_b2 = {}, _b2[name] = compiledTemplate, _b2)); + }, {}); + this.preCompiledTemplates = __assign2(__assign2(__assign2({}, diff2html_templates_1.defaultTemplates), compiledTemplates), compiledRawTemplates); + } + HoganJsUtils2.compile = function(templateString) { + return Hogan2.compile(templateString, { asString: false }); + }; + HoganJsUtils2.prototype.render = function(namespace, view, params, partials, indent) { + var templateKey = this.templateKey(namespace, view); + try { + var template = this.preCompiledTemplates[templateKey]; + return template.render(params, partials, indent); + } catch (e) { + throw new Error("Could not find template to render '" + templateKey + "'"); + } + }; + HoganJsUtils2.prototype.template = function(namespace, view) { + return this.preCompiledTemplates[this.templateKey(namespace, view)]; + }; + HoganJsUtils2.prototype.templateKey = function(namespace, view) { + return namespace + "-" + view; + }; + return HoganJsUtils2; + }(); + exports.default = HoganJsUtils; + } +}); + +// node_modules/diff2html/lib/diff2html.js +var require_diff2html = __commonJS({ + "node_modules/diff2html/lib/diff2html.js"(exports) { + "use strict"; + var __assign2 = exports && exports.__assign || function() { + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign2.apply(this, arguments); + }; + var __createBinding2 = exports && exports.__createBinding || (Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }); + var __setModuleDefault = exports && exports.__setModuleDefault || (Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }); + var __importStar2 = exports && exports.__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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + var __importDefault2 = exports && exports.__importDefault || function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + Object.defineProperty(exports, "__esModule", { value: true }); + exports.html = exports.parse = exports.defaultDiff2HtmlConfig = void 0; + var DiffParser = __importStar2(require_diff_parser()); + var fileListPrinter = __importStar2(require_file_list_renderer()); + var line_by_line_renderer_1 = __importStar2(require_line_by_line_renderer()); + var side_by_side_renderer_1 = __importStar2(require_side_by_side_renderer()); + var types_1 = require_types(); + var hoganjs_utils_1 = __importDefault2(require_hoganjs_utils()); + exports.defaultDiff2HtmlConfig = __assign2(__assign2(__assign2({}, line_by_line_renderer_1.defaultLineByLineRendererConfig), side_by_side_renderer_1.defaultSideBySideRendererConfig), { outputFormat: types_1.OutputFormatType.LINE_BY_LINE, drawFileList: true }); + function parse(diffInput, configuration) { + if (configuration === void 0) { + configuration = {}; + } + return DiffParser.parse(diffInput, __assign2(__assign2({}, exports.defaultDiff2HtmlConfig), configuration)); + } + exports.parse = parse; + function html2(diffInput, configuration) { + if (configuration === void 0) { + configuration = {}; + } + var config = __assign2(__assign2({}, exports.defaultDiff2HtmlConfig), configuration); + var diffJson = typeof diffInput === "string" ? DiffParser.parse(diffInput, config) : diffInput; + var hoganUtils = new hoganjs_utils_1.default(config); + var fileList = config.drawFileList ? fileListPrinter.render(diffJson, hoganUtils) : ""; + var diffOutput = config.outputFormat === "side-by-side" ? new side_by_side_renderer_1.default(hoganUtils, config).render(diffJson) : new line_by_line_renderer_1.default(hoganUtils, config).render(diffJson); + return fileList + diffOutput; + } + exports.html = html2; + } +}); + +// node_modules/feather-icons/dist/feather.js +var require_feather = __commonJS({ + "node_modules/feather-icons/dist/feather.js"(exports, module2) { + (function webpackUniversalModuleDefinition(root, factory) { + if (typeof exports === "object" && typeof module2 === "object") + module2.exports = factory(); + else if (typeof define === "function" && define.amd) + define([], factory); + else if (typeof exports === "object") + exports["feather"] = factory(); + else + root["feather"] = factory(); + })(typeof self !== "undefined" ? self : exports, function() { + return function(modules) { + var installedModules = {}; + function __webpack_require__(moduleId) { + if (installedModules[moduleId]) { + return installedModules[moduleId].exports; + } + var module3 = installedModules[moduleId] = { + i: moduleId, + l: false, + exports: {} + }; + modules[moduleId].call(module3.exports, module3, module3.exports, __webpack_require__); + module3.l = true; + return module3.exports; + } + __webpack_require__.m = modules; + __webpack_require__.c = installedModules; + __webpack_require__.d = function(exports2, name, getter) { + if (!__webpack_require__.o(exports2, name)) { + Object.defineProperty(exports2, name, { + configurable: false, + enumerable: true, + get: getter + }); + } + }; + __webpack_require__.r = function(exports2) { + Object.defineProperty(exports2, "__esModule", { value: true }); + }; + __webpack_require__.n = function(module3) { + var getter = module3 && module3.__esModule ? function getDefault() { + return module3["default"]; + } : function getModuleExports() { + return module3; + }; + __webpack_require__.d(getter, "a", getter); + return getter; + }; + __webpack_require__.o = function(object, property) { + return Object.prototype.hasOwnProperty.call(object, property); + }; + __webpack_require__.p = ""; + return __webpack_require__(__webpack_require__.s = 0); + }({ + "./dist/icons.json": function(module3) { + module3.exports = { "activity": '', "airplay": '', "alert-circle": '', "alert-octagon": '', "alert-triangle": '', "align-center": '', "align-justify": '', "align-left": '', "align-right": '', "anchor": '', "aperture": '', "archive": '', "arrow-down-circle": '', "arrow-down-left": '', "arrow-down-right": '', "arrow-down": '', "arrow-left-circle": '', "arrow-left": '', "arrow-right-circle": '', "arrow-right": '', "arrow-up-circle": '', "arrow-up-left": '', "arrow-up-right": '', "arrow-up": '', "at-sign": '', "award": '', "bar-chart-2": '', "bar-chart": '', "battery-charging": '', "battery": '', "bell-off": '', "bell": '', "bluetooth": '', "bold": '', "book-open": '', "book": '', "bookmark": '', "box": '', "briefcase": '', "calendar": '', "camera-off": '', "camera": '', "cast": '', "check-circle": '', "check-square": '', "check": '', "chevron-down": '', "chevron-left": '', "chevron-right": '', "chevron-up": '', "chevrons-down": '', "chevrons-left": '', "chevrons-right": '', "chevrons-up": '', "chrome": '', "circle": '', "clipboard": '', "clock": '', "cloud-drizzle": '', "cloud-lightning": '', "cloud-off": '', "cloud-rain": '', "cloud-snow": '', "cloud": '', "code": '', "codepen": '', "codesandbox": '', "coffee": '', "columns": '', "command": '', "compass": '', "copy": '', "corner-down-left": '', "corner-down-right": '', "corner-left-down": '', "corner-left-up": '', "corner-right-down": '', "corner-right-up": '', "corner-up-left": '', "corner-up-right": '', "cpu": '', "credit-card": '', "crop": '', "crosshair": '', "database": '', "delete": '', "disc": '', "divide-circle": '', "divide-square": '', "divide": '', "dollar-sign": '', "download-cloud": '', "download": '', "dribbble": '', "droplet": '', "edit-2": '', "edit-3": '', "edit": '', "external-link": '', "eye-off": '', "eye": '', "facebook": '', "fast-forward": '', "feather": '', "figma": '', "file-minus": '', "file-plus": '', "file-text": '', "file": '', "film": '', "filter": '', "flag": '', "folder-minus": '', "folder-plus": '', "folder": '', "framer": '', "frown": '', "gift": '', "git-branch": '', "git-commit": '', "git-merge": '', "git-pull-request": '', "github": '', "gitlab": '', "globe": '', "grid": '', "hard-drive": '', "hash": '', "headphones": '', "heart": '', "help-circle": '', "hexagon": '', "home": '', "image": '', "inbox": '', "info": '', "instagram": '', "italic": '', "key": '', "layers": '', "layout": '', "life-buoy": '', "link-2": '', "link": '', "linkedin": '', "list": '', "loader": '', "lock": '', "log-in": '', "log-out": '', "mail": '', "map-pin": '', "map": '', "maximize-2": '', "maximize": '', "meh": '', "menu": '', "message-circle": '', "message-square": '', "mic-off": '', "mic": '', "minimize-2": '', "minimize": '', "minus-circle": '', "minus-square": '', "minus": '', "monitor": '', "moon": '', "more-horizontal": '', "more-vertical": '', "mouse-pointer": '', "move": '', "music": '', "navigation-2": '', "navigation": '', "octagon": '', "package": '', "paperclip": '', "pause-circle": '', "pause": '', "pen-tool": '', "percent": '', "phone-call": '', "phone-forwarded": '', "phone-incoming": '', "phone-missed": '', "phone-off": '', "phone-outgoing": '', "phone": '', "pie-chart": '', "play-circle": '', "play": '', "plus-circle": '', "plus-square": '', "plus": '', "pocket": '', "power": '', "printer": '', "radio": '', "refresh-ccw": '', "refresh-cw": '', "repeat": '', "rewind": '', "rotate-ccw": '', "rotate-cw": '', "rss": '', "save": '', "scissors": '', "search": '', "send": '', "server": '', "settings": '', "share-2": '', "share": '', "shield-off": '', "shield": '', "shopping-bag": '', "shopping-cart": '', "shuffle": '', "sidebar": '', "skip-back": '', "skip-forward": '', "slack": '', "slash": '', "sliders": '', "smartphone": '', "smile": '', "speaker": '', "square": '', "star": '', "stop-circle": '', "sun": '', "sunrise": '', "sunset": '', "tablet": '', "tag": '', "target": '', "terminal": '', "thermometer": '', "thumbs-down": '', "thumbs-up": '', "toggle-left": '', "toggle-right": '', "tool": '', "trash-2": '', "trash": '', "trello": '', "trending-down": '', "trending-up": '', "triangle": '', "truck": '', "tv": '', "twitch": '', "twitter": '', "type": '', "umbrella": '', "underline": '', "unlock": '', "upload-cloud": '', "upload": '', "user-check": '', "user-minus": '', "user-plus": '', "user-x": '', "user": '', "users": '', "video-off": '', "video": '', "voicemail": '', "volume-1": '', "volume-2": '', "volume-x": '', "volume": '', "watch": '', "wifi-off": '', "wifi": '', "wind": '', "x-circle": '', "x-octagon": '', "x-square": '', "x": '', "youtube": '', "zap-off": '', "zap": '', "zoom-in": '', "zoom-out": '' }; + }, + "./node_modules/classnames/dedupe.js": function(module3, exports2, __webpack_require__) { + var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__; + (function() { + "use strict"; + var classNames = function() { + function StorageObject() { + } + StorageObject.prototype = Object.create(null); + function _parseArray(resultSet, array) { + var length = array.length; + for (var i = 0; i < length; ++i) { + _parse(resultSet, array[i]); + } + } + var hasOwn = {}.hasOwnProperty; + function _parseNumber(resultSet, num) { + resultSet[num] = true; + } + function _parseObject(resultSet, object) { + for (var k in object) { + if (hasOwn.call(object, k)) { + resultSet[k] = !!object[k]; + } + } + } + var SPACE = /\s+/; + function _parseString(resultSet, str) { + var array = str.split(SPACE); + var length = array.length; + for (var i = 0; i < length; ++i) { + resultSet[array[i]] = true; + } + } + function _parse(resultSet, arg) { + if (!arg) + return; + var argType = typeof arg; + if (argType === "string") { + _parseString(resultSet, arg); + } else if (Array.isArray(arg)) { + _parseArray(resultSet, arg); + } else if (argType === "object") { + _parseObject(resultSet, arg); + } else if (argType === "number") { + _parseNumber(resultSet, arg); + } + } + function _classNames() { + var len = arguments.length; + var args = Array(len); + for (var i = 0; i < len; i++) { + args[i] = arguments[i]; + } + var classSet = new StorageObject(); + _parseArray(classSet, args); + var list = []; + for (var k in classSet) { + if (classSet[k]) { + list.push(k); + } + } + return list.join(" "); + } + return _classNames; + }(); + if (typeof module3 !== "undefined" && module3.exports) { + module3.exports = classNames; + } else if (true) { + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function() { + return classNames; + }.apply(exports2, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== void 0 && (module3.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else { + } + })(); + }, + "./node_modules/core-js/es/array/from.js": function(module3, exports2, __webpack_require__) { + __webpack_require__("./node_modules/core-js/modules/es.string.iterator.js"); + __webpack_require__("./node_modules/core-js/modules/es.array.from.js"); + var path3 = __webpack_require__("./node_modules/core-js/internals/path.js"); + module3.exports = path3.Array.from; + }, + "./node_modules/core-js/internals/a-function.js": function(module3, exports2) { + module3.exports = function(it) { + if (typeof it != "function") { + throw TypeError(String(it) + " is not a function"); + } + return it; + }; + }, + "./node_modules/core-js/internals/an-object.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + module3.exports = function(it) { + if (!isObject(it)) { + throw TypeError(String(it) + " is not an object"); + } + return it; + }; + }, + "./node_modules/core-js/internals/array-from.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var bind = __webpack_require__("./node_modules/core-js/internals/bind-context.js"); + var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); + var callWithSafeIterationClosing = __webpack_require__("./node_modules/core-js/internals/call-with-safe-iteration-closing.js"); + var isArrayIteratorMethod = __webpack_require__("./node_modules/core-js/internals/is-array-iterator-method.js"); + var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); + var createProperty = __webpack_require__("./node_modules/core-js/internals/create-property.js"); + var getIteratorMethod = __webpack_require__("./node_modules/core-js/internals/get-iterator-method.js"); + module3.exports = function from(arrayLike) { + var O = toObject(arrayLike); + var C = typeof this == "function" ? this : Array; + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : void 0; + var mapping = mapfn !== void 0; + var index = 0; + var iteratorMethod = getIteratorMethod(O); + var length, result, step, iterator; + if (mapping) + mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : void 0, 2); + if (iteratorMethod != void 0 && !(C == Array && isArrayIteratorMethod(iteratorMethod))) { + iterator = iteratorMethod.call(O); + result = new C(); + for (; !(step = iterator.next()).done; index++) { + createProperty(result, index, mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value); + } + } else { + length = toLength(O.length); + result = new C(length); + for (; length > index; index++) { + createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); + } + } + result.length = index; + return result; + }; + }, + "./node_modules/core-js/internals/array-includes.js": function(module3, exports2, __webpack_require__) { + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var toLength = __webpack_require__("./node_modules/core-js/internals/to-length.js"); + var toAbsoluteIndex = __webpack_require__("./node_modules/core-js/internals/to-absolute-index.js"); + module3.exports = function(IS_INCLUDES) { + return function($this, el, fromIndex) { + var O = toIndexedObject($this); + var length = toLength(O.length); + var index = toAbsoluteIndex(fromIndex, length); + var value; + if (IS_INCLUDES && el != el) + while (length > index) { + value = O[index++]; + if (value != value) + return true; + } + else + for (; length > index; index++) + if (IS_INCLUDES || index in O) { + if (O[index] === el) + return IS_INCLUDES || index || 0; + } + return !IS_INCLUDES && -1; + }; + }; + }, + "./node_modules/core-js/internals/bind-context.js": function(module3, exports2, __webpack_require__) { + var aFunction = __webpack_require__("./node_modules/core-js/internals/a-function.js"); + module3.exports = function(fn, that, length) { + aFunction(fn); + if (that === void 0) + return fn; + switch (length) { + case 0: + return function() { + return fn.call(that); + }; + case 1: + return function(a) { + return fn.call(that, a); + }; + case 2: + return function(a, b) { + return fn.call(that, a, b); + }; + case 3: + return function(a, b, c) { + return fn.call(that, a, b, c); + }; + } + return function() { + return fn.apply(that, arguments); + }; + }; + }, + "./node_modules/core-js/internals/call-with-safe-iteration-closing.js": function(module3, exports2, __webpack_require__) { + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + module3.exports = function(iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + var returnMethod = iterator["return"]; + if (returnMethod !== void 0) + anObject(returnMethod.call(iterator)); + throw error; + } + }; + }, + "./node_modules/core-js/internals/check-correctness-of-iteration.js": function(module3, exports2, __webpack_require__) { + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var SAFE_CLOSING = false; + try { + var called = 0; + var iteratorWithReturn = { + next: function() { + return { done: !!called++ }; + }, + "return": function() { + SAFE_CLOSING = true; + } + }; + iteratorWithReturn[ITERATOR] = function() { + return this; + }; + Array.from(iteratorWithReturn, function() { + throw 2; + }); + } catch (error) { + } + module3.exports = function(exec, SKIP_CLOSING) { + if (!SKIP_CLOSING && !SAFE_CLOSING) + return false; + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function() { + return { + next: function() { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { + } + return ITERATION_SUPPORT; + }; + }, + "./node_modules/core-js/internals/classof-raw.js": function(module3, exports2) { + var toString = {}.toString; + module3.exports = function(it) { + return toString.call(it).slice(8, -1); + }; + }, + "./node_modules/core-js/internals/classof.js": function(module3, exports2, __webpack_require__) { + var classofRaw = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + var CORRECT_ARGUMENTS = classofRaw(function() { + return arguments; + }()) == "Arguments"; + var tryGet = function(it, key2) { + try { + return it[key2]; + } catch (error) { + } + }; + module3.exports = function(it) { + var O, tag, result; + return it === void 0 ? "Undefined" : it === null ? "Null" : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == "string" ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == "Object" && typeof O.callee == "function" ? "Arguments" : result; + }; + }, + "./node_modules/core-js/internals/copy-constructor-properties.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var ownKeys = __webpack_require__("./node_modules/core-js/internals/own-keys.js"); + var getOwnPropertyDescriptorModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + module3.exports = function(target, source) { + var keys = ownKeys(source); + var defineProperty = definePropertyModule.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + for (var i = 0; i < keys.length; i++) { + var key2 = keys[i]; + if (!has(target, key2)) + defineProperty(target, key2, getOwnPropertyDescriptor(source, key2)); + } + }; + }, + "./node_modules/core-js/internals/correct-prototype-getter.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !fails(function() { + function F() { + } + F.prototype.constructor = null; + return Object.getPrototypeOf(new F()) !== F.prototype; + }); + }, + "./node_modules/core-js/internals/create-iterator-constructor.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var IteratorPrototype = __webpack_require__("./node_modules/core-js/internals/iterators-core.js").IteratorPrototype; + var create = __webpack_require__("./node_modules/core-js/internals/object-create.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var returnThis = function() { + return this; + }; + module3.exports = function(IteratorConstructor, NAME, next) { + var TO_STRING_TAG = NAME + " Iterator"; + IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) }); + setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators[TO_STRING_TAG] = returnThis; + return IteratorConstructor; + }; + }, + "./node_modules/core-js/internals/create-property-descriptor.js": function(module3, exports2) { + module3.exports = function(bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value + }; + }; + }, + "./node_modules/core-js/internals/create-property.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + module3.exports = function(object, key2, value) { + var propertyKey = toPrimitive(key2); + if (propertyKey in object) + definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value)); + else + object[propertyKey] = value; + }; + }, + "./node_modules/core-js/internals/define-iterator.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); + var createIteratorConstructor = __webpack_require__("./node_modules/core-js/internals/create-iterator-constructor.js"); + var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); + var setPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-set-prototype-of.js"); + var setToStringTag = __webpack_require__("./node_modules/core-js/internals/set-to-string-tag.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var IteratorsCore = __webpack_require__("./node_modules/core-js/internals/iterators-core.js"); + var IteratorPrototype = IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR = wellKnownSymbol("iterator"); + var KEYS = "keys"; + var VALUES = "values"; + var ENTRIES = "entries"; + var returnThis = function() { + return this; + }; + module3.exports = function(Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + var getIterationMethod = function(KIND) { + if (KIND === DEFAULT && defaultIterator) + return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) + return IterablePrototype[KIND]; + switch (KIND) { + case KEYS: + return function keys() { + return new IteratorConstructor(this, KIND); + }; + case VALUES: + return function values() { + return new IteratorConstructor(this, KIND); + }; + case ENTRIES: + return function entries() { + return new IteratorConstructor(this, KIND); + }; + } + return function() { + return new IteratorConstructor(this); + }; + }; + var TO_STRING_TAG = NAME + " Iterator"; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype["@@iterator"] || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME == "Array" ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable())); + if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) { + if (setPrototypeOf) { + setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype); + } else if (typeof CurrentIteratorPrototype[ITERATOR] != "function") { + hide(CurrentIteratorPrototype, ITERATOR, returnThis); + } + } + setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + if (IS_PURE) + Iterators[TO_STRING_TAG] = returnThis; + } + } + if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { + return nativeIterator.call(this); + }; + } + if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) { + hide(IterablePrototype, ITERATOR, defaultIterator); + } + Iterators[NAME] = defaultIterator; + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) + for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + redefine(IterablePrototype, KEY, methods[KEY]); + } + } + else + $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } + return methods; + }; + }, + "./node_modules/core-js/internals/descriptors.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !fails(function() { + return Object.defineProperty({}, "a", { get: function() { + return 7; + } }).a != 7; + }); + }, + "./node_modules/core-js/internals/document-create-element.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var document2 = global2.document; + var exist = isObject(document2) && isObject(document2.createElement); + module3.exports = function(it) { + return exist ? document2.createElement(it) : {}; + }; + }, + "./node_modules/core-js/internals/enum-bug-keys.js": function(module3, exports2) { + module3.exports = [ + "constructor", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "toLocaleString", + "toString", + "valueOf" + ]; + }, + "./node_modules/core-js/internals/export.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var getOwnPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-descriptor.js").f; + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var redefine = __webpack_require__("./node_modules/core-js/internals/redefine.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var copyConstructorProperties = __webpack_require__("./node_modules/core-js/internals/copy-constructor-properties.js"); + var isForced = __webpack_require__("./node_modules/core-js/internals/is-forced.js"); + module3.exports = function(options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var FORCED, target, key2, targetProperty, sourceProperty, descriptor; + if (GLOBAL) { + target = global2; + } else if (STATIC) { + target = global2[TARGET] || setGlobal(TARGET, {}); + } else { + target = (global2[TARGET] || {}).prototype; + } + if (target) + for (key2 in source) { + sourceProperty = source[key2]; + if (options.noTargetGet) { + descriptor = getOwnPropertyDescriptor(target, key2); + targetProperty = descriptor && descriptor.value; + } else + targetProperty = target[key2]; + FORCED = isForced(GLOBAL ? key2 : TARGET + (STATIC ? "." : "#") + key2, options.forced); + if (!FORCED && targetProperty !== void 0) { + if (typeof sourceProperty === typeof targetProperty) + continue; + copyConstructorProperties(sourceProperty, targetProperty); + } + if (options.sham || targetProperty && targetProperty.sham) { + hide(sourceProperty, "sham", true); + } + redefine(target, key2, sourceProperty, options); + } + }; + }, + "./node_modules/core-js/internals/fails.js": function(module3, exports2) { + module3.exports = function(exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; + }, + "./node_modules/core-js/internals/function-to-string.js": function(module3, exports2, __webpack_require__) { + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + module3.exports = shared("native-function-to-string", Function.toString); + }, + "./node_modules/core-js/internals/get-iterator-method.js": function(module3, exports2, __webpack_require__) { + var classof = __webpack_require__("./node_modules/core-js/internals/classof.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var ITERATOR = wellKnownSymbol("iterator"); + module3.exports = function(it) { + if (it != void 0) + return it[ITERATOR] || it["@@iterator"] || Iterators[classof(it)]; + }; + }, + "./node_modules/core-js/internals/global.js": function(module3, exports2, __webpack_require__) { + (function(global2) { + var O = "object"; + var check = function(it) { + return it && it.Math == Math && it; + }; + module3.exports = check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global2 == O && global2) || Function("return this")(); + }).call(this, __webpack_require__("./node_modules/webpack/buildin/global.js")); + }, + "./node_modules/core-js/internals/has.js": function(module3, exports2) { + var hasOwnProperty = {}.hasOwnProperty; + module3.exports = function(it, key2) { + return hasOwnProperty.call(it, key2); + }; + }, + "./node_modules/core-js/internals/hidden-keys.js": function(module3, exports2) { + module3.exports = {}; + }, + "./node_modules/core-js/internals/hide.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + module3.exports = DESCRIPTORS ? function(object, key2, value) { + return definePropertyModule.f(object, key2, createPropertyDescriptor(1, value)); + } : function(object, key2, value) { + object[key2] = value; + return object; + }; + }, + "./node_modules/core-js/internals/html.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var document2 = global2.document; + module3.exports = document2 && document2.documentElement; + }, + "./node_modules/core-js/internals/ie8-dom-define.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var createElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); + module3.exports = !DESCRIPTORS && !fails(function() { + return Object.defineProperty(createElement("div"), "a", { + get: function() { + return 7; + } + }).a != 7; + }); + }, + "./node_modules/core-js/internals/indexed-object.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var classof = __webpack_require__("./node_modules/core-js/internals/classof-raw.js"); + var split = "".split; + module3.exports = fails(function() { + return !Object("z").propertyIsEnumerable(0); + }) ? function(it) { + return classof(it) == "String" ? split.call(it, "") : Object(it); + } : Object; + }, + "./node_modules/core-js/internals/internal-state.js": function(module3, exports2, __webpack_require__) { + var NATIVE_WEAK_MAP = __webpack_require__("./node_modules/core-js/internals/native-weak-map.js"); + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var objectHas = __webpack_require__("./node_modules/core-js/internals/has.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var WeakMap2 = global2.WeakMap; + var set, get, has; + var enforce = function(it) { + return has(it) ? get(it) : set(it, {}); + }; + var getterFor = function(TYPE) { + return function(it) { + var state; + if (!isObject(it) || (state = get(it)).type !== TYPE) { + throw TypeError("Incompatible receiver, " + TYPE + " required"); + } + return state; + }; + }; + if (NATIVE_WEAK_MAP) { + var store = new WeakMap2(); + var wmget = store.get; + var wmhas = store.has; + var wmset = store.set; + set = function(it, metadata) { + wmset.call(store, it, metadata); + return metadata; + }; + get = function(it) { + return wmget.call(store, it) || {}; + }; + has = function(it) { + return wmhas.call(store, it); + }; + } else { + var STATE = sharedKey("state"); + hiddenKeys[STATE] = true; + set = function(it, metadata) { + hide(it, STATE, metadata); + return metadata; + }; + get = function(it) { + return objectHas(it, STATE) ? it[STATE] : {}; + }; + has = function(it) { + return objectHas(it, STATE); + }; + } + module3.exports = { + set, + get, + has, + enforce, + getterFor + }; + }, + "./node_modules/core-js/internals/is-array-iterator-method.js": function(module3, exports2, __webpack_require__) { + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var Iterators = __webpack_require__("./node_modules/core-js/internals/iterators.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var ArrayPrototype = Array.prototype; + module3.exports = function(it) { + return it !== void 0 && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it); + }; + }, + "./node_modules/core-js/internals/is-forced.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + var replacement = /#|\.prototype\./; + var isForced = function(feature, detection) { + var value = data[normalize2(feature)]; + return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == "function" ? fails(detection) : !!detection; + }; + var normalize2 = isForced.normalize = function(string) { + return String(string).replace(replacement, ".").toLowerCase(); + }; + var data = isForced.data = {}; + var NATIVE = isForced.NATIVE = "N"; + var POLYFILL = isForced.POLYFILL = "P"; + module3.exports = isForced; + }, + "./node_modules/core-js/internals/is-object.js": function(module3, exports2) { + module3.exports = function(it) { + return typeof it === "object" ? it !== null : typeof it === "function"; + }; + }, + "./node_modules/core-js/internals/is-pure.js": function(module3, exports2) { + module3.exports = false; + }, + "./node_modules/core-js/internals/iterators-core.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var getPrototypeOf = __webpack_require__("./node_modules/core-js/internals/object-get-prototype-of.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var ITERATOR = wellKnownSymbol("iterator"); + var BUGGY_SAFARI_ITERATORS = false; + var returnThis = function() { + return this; + }; + var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator; + if ([].keys) { + arrayIterator = [].keys(); + if (!("next" in arrayIterator)) + BUGGY_SAFARI_ITERATORS = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) + IteratorPrototype = PrototypeOfArrayIteratorPrototype; + } + } + if (IteratorPrototype == void 0) + IteratorPrototype = {}; + if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) + hide(IteratorPrototype, ITERATOR, returnThis); + module3.exports = { + IteratorPrototype, + BUGGY_SAFARI_ITERATORS + }; + }, + "./node_modules/core-js/internals/iterators.js": function(module3, exports2) { + module3.exports = {}; + }, + "./node_modules/core-js/internals/native-symbol.js": function(module3, exports2, __webpack_require__) { + var fails = __webpack_require__("./node_modules/core-js/internals/fails.js"); + module3.exports = !!Object.getOwnPropertySymbols && !fails(function() { + return !String(Symbol()); + }); + }, + "./node_modules/core-js/internals/native-weak-map.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); + var WeakMap2 = global2.WeakMap; + module3.exports = typeof WeakMap2 === "function" && /native code/.test(nativeFunctionToString.call(WeakMap2)); + }, + "./node_modules/core-js/internals/object-create.js": function(module3, exports2, __webpack_require__) { + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var defineProperties = __webpack_require__("./node_modules/core-js/internals/object-define-properties.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var html2 = __webpack_require__("./node_modules/core-js/internals/html.js"); + var documentCreateElement = __webpack_require__("./node_modules/core-js/internals/document-create-element.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var IE_PROTO = sharedKey("IE_PROTO"); + var PROTOTYPE = "prototype"; + var Empty = function() { + }; + var createDict = function() { + var iframe = documentCreateElement("iframe"); + var length = enumBugKeys.length; + var lt = "<"; + var script = "script"; + var gt = ">"; + var js = "java" + script + ":"; + var iframeDocument; + iframe.style.display = "none"; + html2.appendChild(iframe); + iframe.src = String(js); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(lt + script + gt + "document.F=Object" + lt + "/" + script + gt); + iframeDocument.close(); + createDict = iframeDocument.F; + while (length--) + delete createDict[PROTOTYPE][enumBugKeys[length]]; + return createDict(); + }; + module3.exports = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + Empty[PROTOTYPE] = anObject(O); + result = new Empty(); + Empty[PROTOTYPE] = null; + result[IE_PROTO] = O; + } else + result = createDict(); + return Properties === void 0 ? result : defineProperties(result, Properties); + }; + hiddenKeys[IE_PROTO] = true; + }, + "./node_modules/core-js/internals/object-define-properties.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var definePropertyModule = __webpack_require__("./node_modules/core-js/internals/object-define-property.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var objectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys.js"); + module3.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { + anObject(O); + var keys = objectKeys(Properties); + var length = keys.length; + var i = 0; + var key2; + while (length > i) + definePropertyModule.f(O, key2 = keys[i++], Properties[key2]); + return O; + }; + }, + "./node_modules/core-js/internals/object-define-property.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var nativeDefineProperty = Object.defineProperty; + exports2.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { + anObject(O); + P = toPrimitive(P, true); + anObject(Attributes); + if (IE8_DOM_DEFINE) + try { + return nativeDefineProperty(O, P, Attributes); + } catch (error) { + } + if ("get" in Attributes || "set" in Attributes) + throw TypeError("Accessors not supported"); + if ("value" in Attributes) + O[P] = Attributes.value; + return O; + }; + }, + "./node_modules/core-js/internals/object-get-own-property-descriptor.js": function(module3, exports2, __webpack_require__) { + var DESCRIPTORS = __webpack_require__("./node_modules/core-js/internals/descriptors.js"); + var propertyIsEnumerableModule = __webpack_require__("./node_modules/core-js/internals/object-property-is-enumerable.js"); + var createPropertyDescriptor = __webpack_require__("./node_modules/core-js/internals/create-property-descriptor.js"); + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var toPrimitive = __webpack_require__("./node_modules/core-js/internals/to-primitive.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var IE8_DOM_DEFINE = __webpack_require__("./node_modules/core-js/internals/ie8-dom-define.js"); + var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + exports2.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject(O); + P = toPrimitive(P, true); + if (IE8_DOM_DEFINE) + try { + return nativeGetOwnPropertyDescriptor(O, P); + } catch (error) { + } + if (has(O, P)) + return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); + }; + }, + "./node_modules/core-js/internals/object-get-own-property-names.js": function(module3, exports2, __webpack_require__) { + var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + var hiddenKeys = enumBugKeys.concat("length", "prototype"); + exports2.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys(O, hiddenKeys); + }; + }, + "./node_modules/core-js/internals/object-get-own-property-symbols.js": function(module3, exports2) { + exports2.f = Object.getOwnPropertySymbols; + }, + "./node_modules/core-js/internals/object-get-prototype-of.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var toObject = __webpack_require__("./node_modules/core-js/internals/to-object.js"); + var sharedKey = __webpack_require__("./node_modules/core-js/internals/shared-key.js"); + var CORRECT_PROTOTYPE_GETTER = __webpack_require__("./node_modules/core-js/internals/correct-prototype-getter.js"); + var IE_PROTO = sharedKey("IE_PROTO"); + var ObjectPrototype = Object.prototype; + module3.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function(O) { + O = toObject(O); + if (has(O, IE_PROTO)) + return O[IE_PROTO]; + if (typeof O.constructor == "function" && O instanceof O.constructor) { + return O.constructor.prototype; + } + return O instanceof Object ? ObjectPrototype : null; + }; + }, + "./node_modules/core-js/internals/object-keys-internal.js": function(module3, exports2, __webpack_require__) { + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var toIndexedObject = __webpack_require__("./node_modules/core-js/internals/to-indexed-object.js"); + var arrayIncludes = __webpack_require__("./node_modules/core-js/internals/array-includes.js"); + var hiddenKeys = __webpack_require__("./node_modules/core-js/internals/hidden-keys.js"); + var arrayIndexOf = arrayIncludes(false); + module3.exports = function(object, names) { + var O = toIndexedObject(object); + var i = 0; + var result = []; + var key2; + for (key2 in O) + !has(hiddenKeys, key2) && has(O, key2) && result.push(key2); + while (names.length > i) + if (has(O, key2 = names[i++])) { + ~arrayIndexOf(result, key2) || result.push(key2); + } + return result; + }; + }, + "./node_modules/core-js/internals/object-keys.js": function(module3, exports2, __webpack_require__) { + var internalObjectKeys = __webpack_require__("./node_modules/core-js/internals/object-keys-internal.js"); + var enumBugKeys = __webpack_require__("./node_modules/core-js/internals/enum-bug-keys.js"); + module3.exports = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys); + }; + }, + "./node_modules/core-js/internals/object-property-is-enumerable.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var nativePropertyIsEnumerable = {}.propertyIsEnumerable; + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); + exports2.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor(this, V); + return !!descriptor && descriptor.enumerable; + } : nativePropertyIsEnumerable; + }, + "./node_modules/core-js/internals/object-set-prototype-of.js": function(module3, exports2, __webpack_require__) { + var validateSetPrototypeOfArguments = __webpack_require__("./node_modules/core-js/internals/validate-set-prototype-of-arguments.js"); + module3.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() { + var correctSetter = false; + var test = {}; + var setter; + try { + setter = Object.getOwnPropertyDescriptor(Object.prototype, "__proto__").set; + setter.call(test, []); + correctSetter = test instanceof Array; + } catch (error) { + } + return function setPrototypeOf(O, proto) { + validateSetPrototypeOfArguments(O, proto); + if (correctSetter) + setter.call(O, proto); + else + O.__proto__ = proto; + return O; + }; + }() : void 0); + }, + "./node_modules/core-js/internals/own-keys.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var getOwnPropertyNamesModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-names.js"); + var getOwnPropertySymbolsModule = __webpack_require__("./node_modules/core-js/internals/object-get-own-property-symbols.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + var Reflect2 = global2.Reflect; + module3.exports = Reflect2 && Reflect2.ownKeys || function ownKeys(it) { + var keys = getOwnPropertyNamesModule.f(anObject(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; + }; + }, + "./node_modules/core-js/internals/path.js": function(module3, exports2, __webpack_require__) { + module3.exports = __webpack_require__("./node_modules/core-js/internals/global.js"); + }, + "./node_modules/core-js/internals/redefine.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var nativeFunctionToString = __webpack_require__("./node_modules/core-js/internals/function-to-string.js"); + var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); + var getInternalState = InternalStateModule.get; + var enforceInternalState = InternalStateModule.enforce; + var TEMPLATE = String(nativeFunctionToString).split("toString"); + shared("inspectSource", function(it) { + return nativeFunctionToString.call(it); + }); + (module3.exports = function(O, key2, value, options) { + var unsafe = options ? !!options.unsafe : false; + var simple = options ? !!options.enumerable : false; + var noTargetGet = options ? !!options.noTargetGet : false; + if (typeof value == "function") { + if (typeof key2 == "string" && !has(value, "name")) + hide(value, "name", key2); + enforceInternalState(value).source = TEMPLATE.join(typeof key2 == "string" ? key2 : ""); + } + if (O === global2) { + if (simple) + O[key2] = value; + else + setGlobal(key2, value); + return; + } else if (!unsafe) { + delete O[key2]; + } else if (!noTargetGet && O[key2]) { + simple = true; + } + if (simple) + O[key2] = value; + else + hide(O, key2, value); + })(Function.prototype, "toString", function toString() { + return typeof this == "function" && getInternalState(this).source || nativeFunctionToString.call(this); + }); + }, + "./node_modules/core-js/internals/require-object-coercible.js": function(module3, exports2) { + module3.exports = function(it) { + if (it == void 0) + throw TypeError("Can't call method on " + it); + return it; + }; + }, + "./node_modules/core-js/internals/set-global.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var hide = __webpack_require__("./node_modules/core-js/internals/hide.js"); + module3.exports = function(key2, value) { + try { + hide(global2, key2, value); + } catch (error) { + global2[key2] = value; + } + return value; + }; + }, + "./node_modules/core-js/internals/set-to-string-tag.js": function(module3, exports2, __webpack_require__) { + var defineProperty = __webpack_require__("./node_modules/core-js/internals/object-define-property.js").f; + var has = __webpack_require__("./node_modules/core-js/internals/has.js"); + var wellKnownSymbol = __webpack_require__("./node_modules/core-js/internals/well-known-symbol.js"); + var TO_STRING_TAG = wellKnownSymbol("toStringTag"); + module3.exports = function(it, TAG, STATIC) { + if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) { + defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG }); + } + }; + }, + "./node_modules/core-js/internals/shared-key.js": function(module3, exports2, __webpack_require__) { + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); + var keys = shared("keys"); + module3.exports = function(key2) { + return keys[key2] || (keys[key2] = uid(key2)); + }; + }, + "./node_modules/core-js/internals/shared.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var setGlobal = __webpack_require__("./node_modules/core-js/internals/set-global.js"); + var IS_PURE = __webpack_require__("./node_modules/core-js/internals/is-pure.js"); + var SHARED = "__core-js_shared__"; + var store = global2[SHARED] || setGlobal(SHARED, {}); + (module3.exports = function(key2, value) { + return store[key2] || (store[key2] = value !== void 0 ? value : {}); + })("versions", []).push({ + version: "3.1.3", + mode: IS_PURE ? "pure" : "global", + copyright: "\xA9 2019 Denis Pushkarev (zloirock.ru)" + }); + }, + "./node_modules/core-js/internals/string-at.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(that, pos, CONVERT_TO_STRING) { + var S = String(requireObjectCoercible(that)); + var position = toInteger(pos); + var size = S.length; + var first2, second; + if (position < 0 || position >= size) + return CONVERT_TO_STRING ? "" : void 0; + first2 = S.charCodeAt(position); + return first2 < 55296 || first2 > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first2 : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first2 - 55296 << 10) + (second - 56320) + 65536; + }; + }, + "./node_modules/core-js/internals/to-absolute-index.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var max = Math.max; + var min = Math.min; + module3.exports = function(index, length) { + var integer = toInteger(index); + return integer < 0 ? max(integer + length, 0) : min(integer, length); + }; + }, + "./node_modules/core-js/internals/to-indexed-object.js": function(module3, exports2, __webpack_require__) { + var IndexedObject = __webpack_require__("./node_modules/core-js/internals/indexed-object.js"); + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(it) { + return IndexedObject(requireObjectCoercible(it)); + }; + }, + "./node_modules/core-js/internals/to-integer.js": function(module3, exports2) { + var ceil = Math.ceil; + var floor = Math.floor; + module3.exports = function(argument) { + return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); + }; + }, + "./node_modules/core-js/internals/to-length.js": function(module3, exports2, __webpack_require__) { + var toInteger = __webpack_require__("./node_modules/core-js/internals/to-integer.js"); + var min = Math.min; + module3.exports = function(argument) { + return argument > 0 ? min(toInteger(argument), 9007199254740991) : 0; + }; + }, + "./node_modules/core-js/internals/to-object.js": function(module3, exports2, __webpack_require__) { + var requireObjectCoercible = __webpack_require__("./node_modules/core-js/internals/require-object-coercible.js"); + module3.exports = function(argument) { + return Object(requireObjectCoercible(argument)); + }; + }, + "./node_modules/core-js/internals/to-primitive.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + module3.exports = function(it, S) { + if (!isObject(it)) + return it; + var fn, val; + if (S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + if (typeof (fn = it.valueOf) == "function" && !isObject(val = fn.call(it))) + return val; + if (!S && typeof (fn = it.toString) == "function" && !isObject(val = fn.call(it))) + return val; + throw TypeError("Can't convert object to primitive value"); + }; + }, + "./node_modules/core-js/internals/uid.js": function(module3, exports2) { + var id = 0; + var postfix = Math.random(); + module3.exports = function(key2) { + return "Symbol(".concat(key2 === void 0 ? "" : key2, ")_", (++id + postfix).toString(36)); + }; + }, + "./node_modules/core-js/internals/validate-set-prototype-of-arguments.js": function(module3, exports2, __webpack_require__) { + var isObject = __webpack_require__("./node_modules/core-js/internals/is-object.js"); + var anObject = __webpack_require__("./node_modules/core-js/internals/an-object.js"); + module3.exports = function(O, proto) { + anObject(O); + if (!isObject(proto) && proto !== null) { + throw TypeError("Can't set " + String(proto) + " as a prototype"); + } + }; + }, + "./node_modules/core-js/internals/well-known-symbol.js": function(module3, exports2, __webpack_require__) { + var global2 = __webpack_require__("./node_modules/core-js/internals/global.js"); + var shared = __webpack_require__("./node_modules/core-js/internals/shared.js"); + var uid = __webpack_require__("./node_modules/core-js/internals/uid.js"); + var NATIVE_SYMBOL = __webpack_require__("./node_modules/core-js/internals/native-symbol.js"); + var Symbol2 = global2.Symbol; + var store = shared("wks"); + module3.exports = function(name) { + return store[name] || (store[name] = NATIVE_SYMBOL && Symbol2[name] || (NATIVE_SYMBOL ? Symbol2 : uid)("Symbol." + name)); + }; + }, + "./node_modules/core-js/modules/es.array.from.js": function(module3, exports2, __webpack_require__) { + var $ = __webpack_require__("./node_modules/core-js/internals/export.js"); + var from = __webpack_require__("./node_modules/core-js/internals/array-from.js"); + var checkCorrectnessOfIteration = __webpack_require__("./node_modules/core-js/internals/check-correctness-of-iteration.js"); + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function(iterable) { + Array.from(iterable); + }); + $({ target: "Array", stat: true, forced: INCORRECT_ITERATION }, { + from + }); + }, + "./node_modules/core-js/modules/es.string.iterator.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var codePointAt = __webpack_require__("./node_modules/core-js/internals/string-at.js"); + var InternalStateModule = __webpack_require__("./node_modules/core-js/internals/internal-state.js"); + var defineIterator = __webpack_require__("./node_modules/core-js/internals/define-iterator.js"); + var STRING_ITERATOR = "String Iterator"; + var setInternalState = InternalStateModule.set; + var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR); + defineIterator(String, "String", function(iterated) { + setInternalState(this, { + type: STRING_ITERATOR, + string: String(iterated), + index: 0 + }); + }, function next() { + var state = getInternalState(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) + return { value: void 0, done: true }; + point = codePointAt(string, index, true); + state.index += point.length; + return { value: point, done: false }; + }); + }, + "./node_modules/webpack/buildin/global.js": function(module3, exports2) { + var g; + g = function() { + return this; + }(); + try { + g = g || Function("return this")() || (1, eval)("this"); + } catch (e) { + if (typeof window === "object") + g = window; + } + module3.exports = g; + }, + "./src/default-attrs.json": function(module3) { + module3.exports = { "xmlns": "http://www.w3.org/2000/svg", "width": 24, "height": 24, "viewBox": "0 0 24 24", "fill": "none", "stroke": "currentColor", "stroke-width": 2, "stroke-linecap": "round", "stroke-linejoin": "round" }; + }, + "./src/icon.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _createClass = function() { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) + descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + return function(Constructor, protoProps, staticProps) { + if (protoProps) + defineProperties(Constructor.prototype, protoProps); + if (staticProps) + defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _defaultAttrs = __webpack_require__("./src/default-attrs.json"); + var _defaultAttrs2 = _interopRequireDefault(_defaultAttrs); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function _classCallCheck(instance5, Constructor) { + if (!(instance5 instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + var Icon = function() { + function Icon2(name, contents) { + var tags = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : []; + _classCallCheck(this, Icon2); + this.name = name; + this.contents = contents; + this.tags = tags; + this.attrs = _extends({}, _defaultAttrs2.default, { class: "feather feather-" + name }); + } + _createClass(Icon2, [{ + key: "toSvg", + value: function toSvg() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + var combinedAttrs = _extends({}, this.attrs, attrs, { class: (0, _dedupe2.default)(this.attrs.class, attrs.class) }); + return "" + this.contents + ""; + } + }, { + key: "toString", + value: function toString() { + return this.contents; + } + }]); + return Icon2; + }(); + function attrsToString(attrs) { + return Object.keys(attrs).map(function(key2) { + return key2 + '="' + attrs[key2] + '"'; + }).join(" "); + } + exports2.default = Icon; + }, + "./src/icons.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _icon = __webpack_require__("./src/icon.js"); + var _icon2 = _interopRequireDefault(_icon); + var _icons = __webpack_require__("./dist/icons.json"); + var _icons2 = _interopRequireDefault(_icons); + var _tags = __webpack_require__("./src/tags.json"); + var _tags2 = _interopRequireDefault(_tags); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + exports2.default = Object.keys(_icons2.default).map(function(key2) { + return new _icon2.default(key2, _icons2.default[key2], _tags2.default[key2]); + }).reduce(function(object, icon) { + object[icon.name] = icon; + return object; + }, {}); + }, + "./src/index.js": function(module3, exports2, __webpack_require__) { + "use strict"; + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + var _toSvg = __webpack_require__("./src/to-svg.js"); + var _toSvg2 = _interopRequireDefault(_toSvg); + var _replace = __webpack_require__("./src/replace.js"); + var _replace2 = _interopRequireDefault(_replace); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + module3.exports = { icons: _icons2.default, toSvg: _toSvg2.default, replace: _replace2.default }; + }, + "./src/replace.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _extends = Object.assign || function(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + for (var key2 in source) { + if (Object.prototype.hasOwnProperty.call(source, key2)) { + target[key2] = source[key2]; + } + } + } + return target; + }; + var _dedupe = __webpack_require__("./node_modules/classnames/dedupe.js"); + var _dedupe2 = _interopRequireDefault(_dedupe); + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function replace() { + var attrs = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; + if (typeof document === "undefined") { + throw new Error("`feather.replace()` only works in a browser environment."); + } + var elementsToReplace = document.querySelectorAll("[data-feather]"); + Array.from(elementsToReplace).forEach(function(element2) { + return replaceElement(element2, attrs); + }); + } + function replaceElement(element2) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + var elementAttrs = getAttrs(element2); + var name = elementAttrs["data-feather"]; + delete elementAttrs["data-feather"]; + var svgString = _icons2.default[name].toSvg(_extends({}, attrs, elementAttrs, { class: (0, _dedupe2.default)(attrs.class, elementAttrs.class) })); + var svgDocument = new DOMParser().parseFromString(svgString, "image/svg+xml"); + var svgElement = svgDocument.querySelector("svg"); + element2.parentNode.replaceChild(svgElement, element2); + } + function getAttrs(element2) { + return Array.from(element2.attributes).reduce(function(attrs, attr2) { + attrs[attr2.name] = attr2.value; + return attrs; + }, {}); + } + exports2.default = replace; + }, + "./src/tags.json": function(module3) { + module3.exports = { "activity": ["pulse", "health", "action", "motion"], "airplay": ["stream", "cast", "mirroring"], "alert-circle": ["warning", "alert", "danger"], "alert-octagon": ["warning", "alert", "danger"], "alert-triangle": ["warning", "alert", "danger"], "align-center": ["text alignment", "center"], "align-justify": ["text alignment", "justified"], "align-left": ["text alignment", "left"], "align-right": ["text alignment", "right"], "anchor": [], "archive": ["index", "box"], "at-sign": ["mention", "at", "email", "message"], "award": ["achievement", "badge"], "aperture": ["camera", "photo"], "bar-chart": ["statistics", "diagram", "graph"], "bar-chart-2": ["statistics", "diagram", "graph"], "battery": ["power", "electricity"], "battery-charging": ["power", "electricity"], "bell": ["alarm", "notification", "sound"], "bell-off": ["alarm", "notification", "silent"], "bluetooth": ["wireless"], "book-open": ["read", "library"], "book": ["read", "dictionary", "booklet", "magazine", "library"], "bookmark": ["read", "clip", "marker", "tag"], "box": ["cube"], "briefcase": ["work", "bag", "baggage", "folder"], "calendar": ["date"], "camera": ["photo"], "cast": ["chromecast", "airplay"], "circle": ["off", "zero", "record"], "clipboard": ["copy"], "clock": ["time", "watch", "alarm"], "cloud-drizzle": ["weather", "shower"], "cloud-lightning": ["weather", "bolt"], "cloud-rain": ["weather"], "cloud-snow": ["weather", "blizzard"], "cloud": ["weather"], "codepen": ["logo"], "codesandbox": ["logo"], "code": ["source", "programming"], "coffee": ["drink", "cup", "mug", "tea", "cafe", "hot", "beverage"], "columns": ["layout"], "command": ["keyboard", "cmd", "terminal", "prompt"], "compass": ["navigation", "safari", "travel", "direction"], "copy": ["clone", "duplicate"], "corner-down-left": ["arrow", "return"], "corner-down-right": ["arrow"], "corner-left-down": ["arrow"], "corner-left-up": ["arrow"], "corner-right-down": ["arrow"], "corner-right-up": ["arrow"], "corner-up-left": ["arrow"], "corner-up-right": ["arrow"], "cpu": ["processor", "technology"], "credit-card": ["purchase", "payment", "cc"], "crop": ["photo", "image"], "crosshair": ["aim", "target"], "database": ["storage", "memory"], "delete": ["remove"], "disc": ["album", "cd", "dvd", "music"], "dollar-sign": ["currency", "money", "payment"], "droplet": ["water"], "edit": ["pencil", "change"], "edit-2": ["pencil", "change"], "edit-3": ["pencil", "change"], "eye": ["view", "watch"], "eye-off": ["view", "watch", "hide", "hidden"], "external-link": ["outbound"], "facebook": ["logo", "social"], "fast-forward": ["music"], "figma": ["logo", "design", "tool"], "file-minus": ["delete", "remove", "erase"], "file-plus": ["add", "create", "new"], "file-text": ["data", "txt", "pdf"], "film": ["movie", "video"], "filter": ["funnel", "hopper"], "flag": ["report"], "folder-minus": ["directory"], "folder-plus": ["directory"], "folder": ["directory"], "framer": ["logo", "design", "tool"], "frown": ["emoji", "face", "bad", "sad", "emotion"], "gift": ["present", "box", "birthday", "party"], "git-branch": ["code", "version control"], "git-commit": ["code", "version control"], "git-merge": ["code", "version control"], "git-pull-request": ["code", "version control"], "github": ["logo", "version control"], "gitlab": ["logo", "version control"], "globe": ["world", "browser", "language", "translate"], "hard-drive": ["computer", "server", "memory", "data"], "hash": ["hashtag", "number", "pound"], "headphones": ["music", "audio", "sound"], "heart": ["like", "love", "emotion"], "help-circle": ["question mark"], "hexagon": ["shape", "node.js", "logo"], "home": ["house", "living"], "image": ["picture"], "inbox": ["email"], "instagram": ["logo", "camera"], "key": ["password", "login", "authentication", "secure"], "layers": ["stack"], "layout": ["window", "webpage"], "life-bouy": ["help", "life ring", "support"], "link": ["chain", "url"], "link-2": ["chain", "url"], "linkedin": ["logo", "social media"], "list": ["options"], "lock": ["security", "password", "secure"], "log-in": ["sign in", "arrow", "enter"], "log-out": ["sign out", "arrow", "exit"], "mail": ["email", "message"], "map-pin": ["location", "navigation", "travel", "marker"], "map": ["location", "navigation", "travel"], "maximize": ["fullscreen"], "maximize-2": ["fullscreen", "arrows", "expand"], "meh": ["emoji", "face", "neutral", "emotion"], "menu": ["bars", "navigation", "hamburger"], "message-circle": ["comment", "chat"], "message-square": ["comment", "chat"], "mic-off": ["record", "sound", "mute"], "mic": ["record", "sound", "listen"], "minimize": ["exit fullscreen", "close"], "minimize-2": ["exit fullscreen", "arrows", "close"], "minus": ["subtract"], "monitor": ["tv", "screen", "display"], "moon": ["dark", "night"], "more-horizontal": ["ellipsis"], "more-vertical": ["ellipsis"], "mouse-pointer": ["arrow", "cursor"], "move": ["arrows"], "music": ["note"], "navigation": ["location", "travel"], "navigation-2": ["location", "travel"], "octagon": ["stop"], "package": ["box", "container"], "paperclip": ["attachment"], "pause": ["music", "stop"], "pause-circle": ["music", "audio", "stop"], "pen-tool": ["vector", "drawing"], "percent": ["discount"], "phone-call": ["ring"], "phone-forwarded": ["call"], "phone-incoming": ["call"], "phone-missed": ["call"], "phone-off": ["call", "mute"], "phone-outgoing": ["call"], "phone": ["call"], "play": ["music", "start"], "pie-chart": ["statistics", "diagram"], "play-circle": ["music", "start"], "plus": ["add", "new"], "plus-circle": ["add", "new"], "plus-square": ["add", "new"], "pocket": ["logo", "save"], "power": ["on", "off"], "printer": ["fax", "office", "device"], "radio": ["signal"], "refresh-cw": ["synchronise", "arrows"], "refresh-ccw": ["arrows"], "repeat": ["loop", "arrows"], "rewind": ["music"], "rotate-ccw": ["arrow"], "rotate-cw": ["arrow"], "rss": ["feed", "subscribe"], "save": ["floppy disk"], "scissors": ["cut"], "search": ["find", "magnifier", "magnifying glass"], "send": ["message", "mail", "email", "paper airplane", "paper aeroplane"], "settings": ["cog", "edit", "gear", "preferences"], "share-2": ["network", "connections"], "shield": ["security", "secure"], "shield-off": ["security", "insecure"], "shopping-bag": ["ecommerce", "cart", "purchase", "store"], "shopping-cart": ["ecommerce", "cart", "purchase", "store"], "shuffle": ["music"], "skip-back": ["music"], "skip-forward": ["music"], "slack": ["logo"], "slash": ["ban", "no"], "sliders": ["settings", "controls"], "smartphone": ["cellphone", "device"], "smile": ["emoji", "face", "happy", "good", "emotion"], "speaker": ["audio", "music"], "star": ["bookmark", "favorite", "like"], "stop-circle": ["media", "music"], "sun": ["brightness", "weather", "light"], "sunrise": ["weather", "time", "morning", "day"], "sunset": ["weather", "time", "evening", "night"], "tablet": ["device"], "tag": ["label"], "target": ["logo", "bullseye"], "terminal": ["code", "command line", "prompt"], "thermometer": ["temperature", "celsius", "fahrenheit", "weather"], "thumbs-down": ["dislike", "bad", "emotion"], "thumbs-up": ["like", "good", "emotion"], "toggle-left": ["on", "off", "switch"], "toggle-right": ["on", "off", "switch"], "tool": ["settings", "spanner"], "trash": ["garbage", "delete", "remove", "bin"], "trash-2": ["garbage", "delete", "remove", "bin"], "triangle": ["delta"], "truck": ["delivery", "van", "shipping", "transport", "lorry"], "tv": ["television", "stream"], "twitch": ["logo"], "twitter": ["logo", "social"], "type": ["text"], "umbrella": ["rain", "weather"], "unlock": ["security"], "user-check": ["followed", "subscribed"], "user-minus": ["delete", "remove", "unfollow", "unsubscribe"], "user-plus": ["new", "add", "create", "follow", "subscribe"], "user-x": ["delete", "remove", "unfollow", "unsubscribe", "unavailable"], "user": ["person", "account"], "users": ["group"], "video-off": ["camera", "movie", "film"], "video": ["camera", "movie", "film"], "voicemail": ["phone"], "volume": ["music", "sound", "mute"], "volume-1": ["music", "sound"], "volume-2": ["music", "sound"], "volume-x": ["music", "sound", "mute"], "watch": ["clock", "time"], "wifi-off": ["disabled"], "wifi": ["connection", "signal", "wireless"], "wind": ["weather", "air"], "x-circle": ["cancel", "close", "delete", "remove", "times", "clear"], "x-octagon": ["delete", "stop", "alert", "warning", "times", "clear"], "x-square": ["cancel", "close", "delete", "remove", "times", "clear"], "x": ["cancel", "close", "delete", "remove", "times", "clear"], "youtube": ["logo", "video", "play"], "zap-off": ["flash", "camera", "lightning"], "zap": ["flash", "camera", "lightning"], "zoom-in": ["magnifying glass"], "zoom-out": ["magnifying glass"] }; + }, + "./src/to-svg.js": function(module3, exports2, __webpack_require__) { + "use strict"; + Object.defineProperty(exports2, "__esModule", { + value: true + }); + var _icons = __webpack_require__("./src/icons.js"); + var _icons2 = _interopRequireDefault(_icons); + function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { default: obj }; + } + function toSvg(name) { + var attrs = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; + console.warn("feather.toSvg() is deprecated. Please use feather.icons[name].toSvg() instead."); + if (!name) { + throw new Error("The required `key` (icon name) parameter is missing."); + } + if (!_icons2.default[name]) { + throw new Error("No icon matching '" + name + "'. See the complete list of icons at https://feathericons.com"); + } + return _icons2.default[name].toSvg(attrs); + } + exports2.default = toSvg; + }, + 0: function(module3, exports2, __webpack_require__) { + __webpack_require__("./node_modules/core-js/es/array/from.js"); + module3.exports = __webpack_require__("./src/index.js"); + } + }); + }); + } +}); + +// node_modules/tslib/tslib.js +var require_tslib = __commonJS({ + "node_modules/tslib/tslib.js"(exports, module2) { + var __extends2; + var __assign2; + var __rest2; + var __decorate2; + var __param2; + var __metadata2; + var __awaiter2; + var __generator2; + var __exportStar2; + var __values2; + var __read2; + var __spread2; + var __spreadArrays2; + var __spreadArray2; + var __await2; + var __asyncGenerator2; + var __asyncDelegator2; + var __asyncValues2; + var __makeTemplateObject2; + var __importStar2; + var __importDefault2; + var __classPrivateFieldGet2; + var __classPrivateFieldSet2; + var __createBinding2; + (function(factory) { + var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {}; + if (typeof define === "function" && define.amd) { + define("tslib", ["exports"], function(exports2) { + factory(createExporter(root, createExporter(exports2))); + }); + } else if (typeof module2 === "object" && typeof module2.exports === "object") { + factory(createExporter(root, createExporter(module2.exports))); + } else { + factory(createExporter(root)); + } + function createExporter(exports2, previous) { + if (exports2 !== root) { + if (typeof Object.create === "function") { + Object.defineProperty(exports2, "__esModule", { value: true }); + } else { + exports2.__esModule = true; + } + } + return function(id, v) { + return exports2[id] = previous ? previous(id, v) : v; + }; + } + })(function(exporter) { + var extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d, b) { + d.__proto__ = b; + } || function(d, b) { + for (var p in b) + if (Object.prototype.hasOwnProperty.call(b, p)) + d[p] = b[p]; + }; + __extends2 = function(d, b) { + if (typeof b !== "function" && b !== null) + throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; + __assign2 = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + __rest2 = function(s, e) { + var t = {}; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; + if (s != null && typeof Object.getOwnPropertySymbols === "function") + for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { + if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) + t[p[i]] = s[p[i]]; + } + return t; + }; + __decorate2 = function(decorators, target, key2, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key2) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key2, desc); + else + for (var i = decorators.length - 1; i >= 0; i--) + if (d = decorators[i]) + r = (c < 3 ? d(r) : c > 3 ? d(target, key2, r) : d(target, key2)) || r; + return c > 3 && r && Object.defineProperty(target, key2, r), r; + }; + __param2 = function(paramIndex, decorator) { + return function(target, key2) { + decorator(target, key2, paramIndex); + }; + }; + __metadata2 = function(metadataKey, metadataValue) { + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); + }; + __awaiter2 = 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()); + }); + }; + __generator2 = 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 }; + } + }; + __exportStar2 = function(m, o) { + for (var p in m) + if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) + __createBinding2(o, m, p); + }; + __createBinding2 = Object.create ? function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { + return m[k]; + } }); + } : function(o, m, k, k2) { + if (k2 === void 0) + k2 = k; + o[k2] = m[k]; + }; + __values2 = function(o) { + var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function() { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; + throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); + }; + __read2 = function(o, n) { + var m = typeof Symbol === "function" && o[Symbol.iterator]; + if (!m) + return o; + var i = m.call(o), r, ar = [], e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } catch (error) { + e = { error }; + } finally { + try { + if (r && !r.done && (m = i["return"])) + m.call(i); + } finally { + if (e) + throw e.error; + } + } + return ar; + }; + __spread2 = function() { + for (var ar = [], i = 0; i < arguments.length; i++) + ar = ar.concat(__read2(arguments[i])); + return ar; + }; + __spreadArrays2 = function() { + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; + for (var r = Array(s), k = 0, i = 0; i < il; i++) + for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) + r[k] = a[j]; + return r; + }; + __spreadArray2 = function(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) + ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + }; + __await2 = function(v) { + return this instanceof __await2 ? (this.v = v, this) : new __await2(v); + }; + __asyncGenerator2 = function(thisArg, _arguments, generator) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var g = generator.apply(thisArg, _arguments || []), i, q = []; + return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i; + function verb(n) { + if (g[n]) + i[n] = function(v) { + return new Promise(function(a, b) { + q.push([n, v, a, b]) > 1 || resume(n, v); + }); + }; + } + function resume(n, v) { + try { + step(g[n](v)); + } catch (e) { + settle(q[0][3], e); + } + } + function step(r) { + r.value instanceof __await2 ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); + } + function fulfill(value) { + resume("next", value); + } + function reject(value) { + resume("throw", value); + } + function settle(f, v) { + if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); + } + }; + __asyncDelegator2 = function(o) { + var i, p; + return i = {}, verb("next"), verb("throw", function(e) { + throw e; + }), verb("return"), i[Symbol.iterator] = function() { + return this; + }, i; + function verb(n, f) { + i[n] = o[n] ? function(v) { + return (p = !p) ? { value: __await2(o[n](v)), done: n === "return" } : f ? f(v) : v; + } : f; + } + }; + __asyncValues2 = function(o) { + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); + var m = o[Symbol.asyncIterator], i; + return m ? m.call(o) : (o = typeof __values2 === "function" ? __values2(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function() { + return this; + }, i); + function verb(n) { + i[n] = o[n] && function(v) { + return new Promise(function(resolve, reject) { + v = o[n](v), settle(resolve, reject, v.done, v.value); + }); + }; + } + function settle(resolve, reject, d, v) { + Promise.resolve(v).then(function(v2) { + resolve({ value: v2, done: d }); + }, reject); + } + }; + __makeTemplateObject2 = function(cooked, raw) { + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } else { + cooked.raw = raw; + } + return cooked; + }; + var __setModuleDefault = Object.create ? function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + } : function(o, v) { + o["default"] = v; + }; + __importStar2 = 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)) + __createBinding2(result, mod, k); + } + __setModuleDefault(result, mod); + return result; + }; + __importDefault2 = function(mod) { + return mod && mod.__esModule ? mod : { "default": mod }; + }; + __classPrivateFieldGet2 = function(receiver, state, kind, f) { + if (kind === "a" && !f) + throw new TypeError("Private accessor was defined without a getter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) + throw new TypeError("Cannot read private member from an object whose class did not declare it"); + return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver); + }; + __classPrivateFieldSet2 = function(receiver, state, value, kind, f) { + if (kind === "m") + throw new TypeError("Private method is not writable"); + if (kind === "a" && !f) + throw new TypeError("Private accessor was defined without a setter"); + if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) + throw new TypeError("Cannot write private member to an object whose class did not declare it"); + return kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value; + }; + exporter("__extends", __extends2); + exporter("__assign", __assign2); + exporter("__rest", __rest2); + exporter("__decorate", __decorate2); + exporter("__param", __param2); + exporter("__metadata", __metadata2); + exporter("__awaiter", __awaiter2); + exporter("__generator", __generator2); + exporter("__exportStar", __exportStar2); + exporter("__createBinding", __createBinding2); + exporter("__values", __values2); + exporter("__read", __read2); + exporter("__spread", __spread2); + exporter("__spreadArrays", __spreadArrays2); + exporter("__spreadArray", __spreadArray2); + exporter("__await", __await2); + exporter("__asyncGenerator", __asyncGenerator2); + exporter("__asyncDelegator", __asyncDelegator2); + exporter("__asyncValues", __asyncValues2); + exporter("__makeTemplateObject", __makeTemplateObject2); + exporter("__importStar", __importStar2); + exporter("__importDefault", __importDefault2); + exporter("__classPrivateFieldGet", __classPrivateFieldGet2); + exporter("__classPrivateFieldSet", __classPrivateFieldSet2); + }); + } +}); + +// src/main.ts +__export(exports, { + default: () => ObsidianGit +}); +var import_obsidian14 = __toModule(require("obsidian")); +var path2 = __toModule(require("path")); + +// src/promiseQueue.ts +var PromiseQueue = class { + constructor() { + this.tasks = []; + } + addTask(task) { + this.tasks.push(task); + if (this.tasks.length === 1) { + this.handleTask(); + } + } + handleTask() { + return __async(this, null, function* () { + if (this.tasks.length > 0) { + this.tasks[0]().finally(() => { + this.tasks.shift(); + this.handleTask(); + }); + } + }); + } +}; + +// src/settings.ts +var import_obsidian = __toModule(require("obsidian")); +var ObsidianGitSettingsTab = class extends import_obsidian.PluginSettingTab { + display() { + let { containerEl } = this; + const plugin = this.plugin; + containerEl.empty(); + containerEl.createEl("h2", { text: "Git Backup settings" }); + new import_obsidian.Setting(containerEl).setName("Vault backup interval (minutes)").setDesc("Commit and push changes every X minutes. Set to 0 (default) to disable. (See below setting for further configuration!)").addText((text2) => text2.setValue(String(plugin.settings.autoSaveInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoSaveInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.clearAutoBackup(); + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + new import_obsidian.Notice(`Automatic backup enabled! Every ${plugin.settings.autoSaveInterval} minutes.`); + } else if (plugin.settings.autoSaveInterval <= 0) { + plugin.clearAutoBackup() && new import_obsidian.Notice("Automatic backup disabled!"); + } + } else { + new import_obsidian.Notice("Please specify a valid number."); + } + })); + new import_obsidian.Setting(containerEl).setName("If turned on, do auto backup every X minutes after last change. Prevents auto backup while editing a file. If turned off, do auto backup every X minutes. It's independent from last change.").addToggle((toggle) => toggle.setValue(plugin.settings.autoBackupAfterFileChange).onChange((value) => { + plugin.settings.autoBackupAfterFileChange = value; + plugin.saveSettings(); + plugin.clearAutoBackup(); + if (plugin.settings.autoSaveInterval > 0) { + plugin.startAutoBackup(plugin.settings.autoSaveInterval); + } + })); + new import_obsidian.Setting(containerEl).setName("Auto pull interval (minutes)").setDesc("Pull changes every X minutes. Set to 0 (default) to disable.").addText((text2) => text2.setValue(String(plugin.settings.autoPullInterval)).onChange((value) => { + if (!isNaN(Number(value))) { + plugin.settings.autoPullInterval = Number(value); + plugin.saveSettings(); + if (plugin.settings.autoPullInterval > 0) { + plugin.clearAutoPull(); + plugin.startAutoPull(plugin.settings.autoPullInterval); + new import_obsidian.Notice(`Automatic pull enabled! Every ${plugin.settings.autoPullInterval} minutes.`); + } else if (plugin.settings.autoPullInterval <= 0) { + plugin.clearAutoPull() && new import_obsidian.Notice("Automatic pull disabled!"); + } + } else { + new import_obsidian.Notice("Please specify a valid number."); + } + })); + new import_obsidian.Setting(containerEl).setName("Sync Method").setDesc("Selects the method used for handling new changes found in your remote git repository.").addDropdown((dropdown) => { + const options = { + "merge": "Merge", + "rebase": "Rebase", + "reset": "Other sync service (Only updates the HEAD without touching the working directory)" + }; + dropdown.addOptions(options); + dropdown.setValue(plugin.settings.syncMethod); + dropdown.onChange((option) => __async(this, null, function* () { + plugin.settings.syncMethod = option; + plugin.saveSettings(); + })); + }); + new import_obsidian.Setting(containerEl).setName("Commit message on manual backup/commit").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.commitMessage ? plugin.settings.commitMessage : "").onChange((value) => { + plugin.settings.commitMessage = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Commit message on auto backup").setDesc("Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup: {{date}}").setValue(plugin.settings.autoCommitMessage).onChange((value) => { + plugin.settings.autoCommitMessage = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("{{date}} placeholder format").setDesc('Specify custom date format. E.g. "YYYY-MM-DD HH:mm:ss"').addText((text2) => text2.setPlaceholder(plugin.settings.commitDateFormat).setValue(plugin.settings.commitDateFormat).onChange((value) => __async(this, null, function* () { + plugin.settings.commitDateFormat = value; + yield plugin.saveSettings(); + }))); + new import_obsidian.Setting(containerEl).setName("{{hostname}} placeholder replacement").setDesc("Specify custom hostname for every device.").addText((text2) => text2.setValue(localStorage.getItem(plugin.manifest.id + ":hostname")).onChange((value) => __async(this, null, function* () { + localStorage.setItem(plugin.manifest.id + ":hostname", value); + }))); + new import_obsidian.Setting(containerEl).setName("Preview commit message").addButton((button) => button.setButtonText("Preview").onClick(() => __async(this, null, function* () { + let commitMessagePreview = yield plugin.gitManager.formatCommitMessage(plugin.settings.commitMessage); + new import_obsidian.Notice(`${commitMessagePreview}`); + }))); + new import_obsidian.Setting(containerEl).setName("List filenames affected by commit in the commit body").addToggle((toggle) => toggle.setValue(plugin.settings.listChangedFilesInMessageBody).onChange((value) => { + plugin.settings.listChangedFilesInMessageBody = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Specify custom commit message on auto backup").setDesc("You will get a pop up to specify your message").addToggle((toggle) => toggle.setValue(plugin.settings.customMessageOnAutoBackup).onChange((value) => { + plugin.settings.customMessageOnAutoBackup = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Current branch").setDesc("Switch to a different branch").addDropdown((dropdown) => __async(this, null, function* () { + const branchInfo = yield plugin.gitManager.branchInfo(); + for (const branch of branchInfo.branches) { + dropdown.addOption(branch, branch); + } + dropdown.setValue(branchInfo.current); + dropdown.onChange((option) => __async(this, null, function* () { + yield plugin.gitManager.checkout(option); + new import_obsidian.Notice(`Checked out to ${option}`); + })); + })); + new import_obsidian.Setting(containerEl).setName("Pull updates on startup").setDesc("Automatically pull updates when Obsidian starts").addToggle((toggle) => toggle.setValue(plugin.settings.autoPullOnBoot).onChange((value) => { + plugin.settings.autoPullOnBoot = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Disable push").setDesc("Do not push changes to the remote repository").addToggle((toggle) => toggle.setValue(plugin.settings.disablePush).onChange((value) => { + plugin.settings.disablePush = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Pull changes before push").setDesc("Commit -> pull -> push (Only if pushing is enabled)").addToggle((toggle) => toggle.setValue(plugin.settings.pullBeforePush).onChange((value) => { + plugin.settings.pullBeforePush = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Automatically refresh Source Control View on file changes").setDesc("On slower machines this may cause lags. If so, just disable this option").addToggle((toggle) => toggle.setValue(plugin.settings.refreshSourceControl).onChange((value) => { + plugin.settings.refreshSourceControl = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Update submodules").setDesc('"Create backup" and "pull" takes care of submodules. Missing features: Conflicted files, count of pulled/pushed/committed files. Tracking branch needs to be set for each submodule').addToggle((toggle) => toggle.setValue(plugin.settings.updateSubmodules).onChange((value) => { + plugin.settings.updateSubmodules = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Disable notifications").setDesc("Disable notifications for git operations to minimize distraction (refer to status bar for updates)").addToggle((toggle) => toggle.setValue(plugin.settings.disablePopups).onChange((value) => { + plugin.settings.disablePopups = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Show status bar").setDesc("Obsidian must be restarted for the changes to take affect").addToggle((toggle) => toggle.setValue(plugin.settings.showStatusBar).onChange((value) => { + plugin.settings.showStatusBar = value; + plugin.saveSettings(); + })); + new import_obsidian.Setting(containerEl).setName("Custom Git binary path").addText((cb) => { + cb.setValue(plugin.settings.gitPath); + cb.setPlaceholder("git"); + cb.onChange((value) => { + plugin.settings.gitPath = value; + plugin.saveSettings(); + plugin.gitManager.updateGitPath(value || "git"); + }); + }); + const info = containerEl.createDiv(); + info.setAttr("align", "center"); + info.setText("Debugging and logging:\nYou can always see the logs of this and every other plugin by opening the console with"); + const keys = containerEl.createDiv(); + keys.setAttr("align", "center"); + keys.addClass("obsidian-git-shortcuts"); + if (import_obsidian.Platform.isMacOS === true) { + keys.createEl("kbd", { text: "CMD (\u2318) + OPTION (\u2325) + I" }); + } else { + keys.createEl("kbd", { text: "CTRL + SHIFT + I" }); + } + } +}; + +// src/statusBar.ts +var import_obsidian2 = __toModule(require("obsidian")); + +// src/types.ts +var PluginState; +(function(PluginState2) { + PluginState2[PluginState2["idle"] = 0] = "idle"; + PluginState2[PluginState2["status"] = 1] = "status"; + PluginState2[PluginState2["pull"] = 2] = "pull"; + PluginState2[PluginState2["add"] = 3] = "add"; + PluginState2[PluginState2["commit"] = 4] = "commit"; + PluginState2[PluginState2["push"] = 5] = "push"; + PluginState2[PluginState2["conflicted"] = 6] = "conflicted"; +})(PluginState || (PluginState = {})); + +// src/statusBar.ts +var StatusBar = class { + constructor(statusBarEl, plugin) { + this.statusBarEl = statusBarEl; + this.plugin = plugin; + this.messages = []; + this.base = "obsidian-git-statusbar-"; + this.statusBarEl.setAttribute("aria-label-position", "top"); + } + displayMessage(message, timeout) { + this.messages.push({ + message: `Git: ${message.slice(0, 100)}`, + timeout + }); + this.display(); + } + display() { + if (this.messages.length > 0 && !this.currentMessage) { + this.currentMessage = this.messages.shift(); + this.statusBarEl.addClass(this.base + "message"); + this.statusBarEl.ariaLabel = ""; + this.statusBarEl.setText(this.currentMessage.message); + this.lastMessageTimestamp = Date.now(); + } else if (this.currentMessage) { + const messageAge = Date.now() - this.lastMessageTimestamp; + if (messageAge >= this.currentMessage.timeout) { + this.currentMessage = null; + this.lastMessageTimestamp = null; + } + } else { + this.displayState(); + } + } + displayState() { + switch (this.plugin.state) { + case PluginState.idle: + this.displayFromNow(this.plugin.lastUpdate); + break; + case PluginState.status: + this.statusBarEl.ariaLabel = "Checking repository status..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-refresh-cw"); + this.statusBarEl.addClass(this.base + "status"); + break; + case PluginState.add: + this.statusBarEl.ariaLabel = "Adding files..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-refresh-w"); + this.statusBarEl.addClass(this.base + "add"); + break; + case PluginState.commit: + this.statusBarEl.ariaLabel = "Committing changes..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-git-commit"); + this.statusBarEl.addClass(this.base + "commit"); + break; + case PluginState.push: + this.statusBarEl.ariaLabel = "Pushing changes..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-upload"); + this.statusBarEl.addClass(this.base + "push"); + break; + case PluginState.pull: + this.statusBarEl.ariaLabel = "Pulling changes..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-download"); + this.statusBarEl.addClass(this.base + "pull"); + break; + case PluginState.conflicted: + this.statusBarEl.ariaLabel = "You have conflict files..."; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-alert-circle"); + this.statusBarEl.addClass(this.base + "conflict"); + break; + default: + this.statusBarEl.ariaLabel = "Failed on initialization!"; + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-alert-triangle"); + this.statusBarEl.addClass(this.base + "failed-init"); + break; + } + } + displayFromNow(timestamp) { + if (timestamp) { + const moment = window.moment; + const fromNow = moment(timestamp).fromNow(); + this.statusBarEl.ariaLabel = `Last Git update: ${fromNow}`; + } else { + this.statusBarEl.ariaLabel = "Git is ready"; + } + (0, import_obsidian2.setIcon)(this.statusBarEl, "feather-check"); + this.statusBarEl.addClass(this.base + "idle"); + } +}; + +// src/ui/modals/changedFilesModal.ts +var import_obsidian3 = __toModule(require("obsidian")); +var ChangedFilesModal = class extends import_obsidian3.FuzzySuggestModal { + constructor(plugin, changedFiles) { + super(plugin.app); + this.plugin = plugin; + this.changedFiles = changedFiles; + this.setPlaceholder("Not supported files will be opened by default app!"); + } + getItems() { + return this.changedFiles; + } + getItemText(item) { + if (item.index == "?" && item.working_dir == "U") { + return `Untracked | ${item.path}`; + } + let working_dir = ""; + let index = ""; + if (item.working_dir != " ") + working_dir = `Working dir: ${item.working_dir} `; + if (item.index != " ") + index = `Index: ${item.index}`; + return `${working_dir}${index} | ${item.path}`; + } + onChooseItem(item, _) { + if (this.plugin.app.metadataCache.getFirstLinkpathDest(item.path, "") == null) { + this.app.openWithDefaultApp(item.path); + } else { + this.plugin.app.workspace.openLinkText(item.path, "/"); + } + } +}; + +// src/ui/modals/customMessageModal.ts +var import_obsidian4 = __toModule(require("obsidian")); +var CustomMessageModal = class extends import_obsidian4.SuggestModal { + constructor(plugin, fromAutoBackup) { + super(plugin.app); + this.fromAutoBackup = fromAutoBackup; + this.resolve = null; + this.plugin = plugin; + this.setPlaceholder("Type your message and select optional the version with the added date."); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + selectSuggestion(value, evt) { + if (this.resolve) + this.resolve(value); + super.selectSuggestion(value, evt); + } + getSuggestions(query) { + const date = window.moment().format(this.plugin.settings.commitDateFormat); + if (query == "") + query = "..."; + return [query, `${date}: ${query}`, `${query}: ${date}`]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/constants.ts +var DEFAULT_SETTINGS = { + commitMessage: "vault backup: {{date}}", + autoCommitMessage: void 0, + commitDateFormat: "YYYY-MM-DD HH:mm:ss", + autoSaveInterval: 0, + autoPullInterval: 0, + autoPullOnBoot: false, + disablePush: false, + pullBeforePush: true, + disablePopups: false, + listChangedFilesInMessageBody: false, + showStatusBar: true, + updateSubmodules: false, + syncMethod: "merge", + gitPath: "", + customMessageOnAutoBackup: false, + autoBackupAfterFileChange: false, + treeStructure: false, + refreshSourceControl: true +}; +var GIT_VIEW_CONFIG = { + type: "git-view", + name: "Source Control", + icon: "feather-git-pull-request" +}; +var DIFF_VIEW_CONFIG = { + type: "diff-view", + name: "Diff View", + icon: "feather-git-pull-request" +}; + +// src/openInGitHub.ts +var import_electron = __toModule(require("electron")); +var import_obsidian5 = __toModule(require("obsidian")); +function openLineInGitHub(editor, file, manager) { + return __async(this, null, function* () { + const { isGitHub, branch, repo, user } = yield getData(manager); + if (isGitHub) { + const from = editor.getCursor("from").line + 1; + const to = editor.getCursor("to").line + 1; + if (from === to) { + yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/blob/${branch}/${file.path}?plain=1#L${from}`); + } else { + yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/blob/${branch}/${file.path}?plain=1#L${from}-L${to}`); + } + } else { + new import_obsidian5.Notice("It seems like you are not using GitHub"); + } + }); +} +function openHistoryInGitHub(file, manager) { + return __async(this, null, function* () { + const { isGitHub, branch, repo, user } = yield getData(manager); + if (isGitHub) { + yield import_electron.shell.openExternal(`https://github.com/${user}/${repo}/commits/${branch}/${file.path}`); + } else { + new import_obsidian5.Notice("It seems like you are not using GitHub"); + } + }); +} +function getData(manager) { + return __async(this, null, function* () { + const branchInfo = yield manager.branchInfo(); + const remoteBranch = branchInfo.tracking; + const branch = branchInfo.current; + const remote = remoteBranch.substring(0, remoteBranch.indexOf("/")); + const remoteUrl = yield manager.getConfig(`remote.${remote}.url`); + const [isGitHub, httpsUser, httpsRepo, sshUser, sshRepo] = remoteUrl.match(/(?:^https:\/\/github\.com\/(.*)\/(.*)\.git$)|(?:^git@github\.com:(.*)\/(.*)\.git$)/); + return { + isGitHub: !!isGitHub, + repo: httpsRepo || sshRepo, + user: httpsUser || sshUser, + branch + }; + }); +} + +// src/simpleGit.ts +var import_child_process2 = __toModule(require("child_process")); +var path = __toModule(require("path")); + +// node_modules/simple-git/dist/esm/index.js +var import_file_exists = __toModule(require_dist()); +var import_debug = __toModule(require_src()); +var import_child_process = __toModule(require("child_process")); +var import_promise_deferred = __toModule(require_dist2()); +var import_promise_deferred2 = __toModule(require_dist2()); +var __defProp2 = Object.defineProperty; +var __defProps2 = Object.defineProperties; +var __getOwnPropDesc2 = Object.getOwnPropertyDescriptor; +var __getOwnPropDescs2 = Object.getOwnPropertyDescriptors; +var __getOwnPropNames2 = Object.getOwnPropertyNames; +var __getOwnPropSymbols2 = Object.getOwnPropertySymbols; +var __hasOwnProp2 = Object.prototype.hasOwnProperty; +var __propIsEnum2 = Object.prototype.propertyIsEnumerable; +var __defNormalProp2 = (obj, key2, value) => key2 in obj ? __defProp2(obj, key2, { enumerable: true, configurable: true, writable: true, value }) : obj[key2] = value; +var __spreadValues2 = (a, b) => { + for (var prop in b || (b = {})) + if (__hasOwnProp2.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + if (__getOwnPropSymbols2) + for (var prop of __getOwnPropSymbols2(b)) { + if (__propIsEnum2.call(b, prop)) + __defNormalProp2(a, prop, b[prop]); + } + return a; +}; +var __spreadProps2 = (a, b) => __defProps2(a, __getOwnPropDescs2(b)); +var __markAsModule2 = (target) => __defProp2(target, "__esModule", { value: true }); +var __esm = (fn, res) => function __init() { + return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res; +}; +var __commonJS2 = (cb, mod) => function __require() { + return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports; +}; +var __export2 = (target, all) => { + for (var name in all) + __defProp2(target, name, { get: all[name], enumerable: true }); +}; +var __reExport2 = (target, module2, copyDefault, desc) => { + if (module2 && typeof module2 === "object" || typeof module2 === "function") { + for (let key2 of __getOwnPropNames2(module2)) + if (!__hasOwnProp2.call(target, key2) && (copyDefault || key2 !== "default")) + __defProp2(target, key2, { get: () => module2[key2], enumerable: !(desc = __getOwnPropDesc2(module2, key2)) || desc.enumerable }); + } + return target; +}; +var __toCommonJS = /* @__PURE__ */ ((cache) => { + return (module2, temp) => { + return cache && cache.get(module2) || (temp = __reExport2(__markAsModule2({}), module2, 1), cache && cache.set(module2, temp), temp); + }; +})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0); +var __async2 = (__this, __arguments, generator) => { + return new Promise((resolve, reject) => { + var fulfilled = (value) => { + try { + step(generator.next(value)); + } catch (e) { + reject(e); + } + }; + var rejected = (value) => { + try { + step(generator.throw(value)); + } catch (e) { + reject(e); + } + }; + var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); + step((generator = generator.apply(__this, __arguments)).next()); + }); +}; +var GitError; +var init_git_error = __esm({ + "src/lib/errors/git-error.ts"() { + GitError = class extends Error { + constructor(task, message) { + super(message); + this.task = task; + Object.setPrototypeOf(this, new.target.prototype); + } + }; + } +}); +var GitResponseError; +var init_git_response_error = __esm({ + "src/lib/errors/git-response-error.ts"() { + init_git_error(); + GitResponseError = class extends GitError { + constructor(git, message) { + super(void 0, message || String(git)); + this.git = git; + } + }; + } +}); +var TaskConfigurationError; +var init_task_configuration_error = __esm({ + "src/lib/errors/task-configuration-error.ts"() { + init_git_error(); + TaskConfigurationError = class extends GitError { + constructor(message) { + super(void 0, message); + } + }; + } +}); +function asFunction(source) { + return typeof source === "function" ? source : NOOP; +} +function isUserFunction(source) { + return typeof source === "function" && source !== NOOP; +} +function splitOn(input, char) { + const index = input.indexOf(char); + if (index <= 0) { + return [input, ""]; + } + return [ + input.substr(0, index), + input.substr(index + 1) + ]; +} +function first(input, offset = 0) { + return isArrayLike(input) && input.length > offset ? input[offset] : void 0; +} +function last(input, offset = 0) { + if (isArrayLike(input) && input.length > offset) { + return input[input.length - 1 - offset]; + } +} +function isArrayLike(input) { + return !!(input && typeof input.length === "number"); +} +function toLinesWithContent(input = "", trimmed2 = true, separator = "\n") { + return input.split(separator).reduce((output, line) => { + const lineContent = trimmed2 ? line.trim() : line; + if (lineContent) { + output.push(lineContent); + } + return output; + }, []); +} +function forEachLineWithContent(input, callback) { + return toLinesWithContent(input, true).map((line) => callback(line)); +} +function folderExists(path3) { + return (0, import_file_exists.exists)(path3, import_file_exists.FOLDER); +} +function append(target, item) { + if (Array.isArray(target)) { + if (!target.includes(item)) { + target.push(item); + } + } else { + target.add(item); + } + return item; +} +function including(target, item) { + if (Array.isArray(target) && !target.includes(item)) { + target.push(item); + } + return target; +} +function remove(target, item) { + if (Array.isArray(target)) { + const index = target.indexOf(item); + if (index >= 0) { + target.splice(index, 1); + } + } else { + target.delete(item); + } + return item; +} +function asArray(source) { + return Array.isArray(source) ? source : [source]; +} +function asStringArray(source) { + return asArray(source).map(String); +} +function asNumber(source, onNaN = 0) { + if (source == null) { + return onNaN; + } + const num = parseInt(source, 10); + return isNaN(num) ? onNaN : num; +} +function prefixedArray(input, prefix) { + const output = []; + for (let i = 0, max = input.length; i < max; i++) { + output.push(prefix, input[i]); + } + return output; +} +function bufferToString(input) { + return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); +} +function pick(source, properties) { + return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); +} +function delay(duration = 0) { + return new Promise((done) => setTimeout(done, duration)); +} +var NULL; +var NOOP; +var objectToString; +var init_util = __esm({ + "src/lib/utils/util.ts"() { + NULL = "\0"; + NOOP = () => { + }; + objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); + } +}); +function filterType(input, filter, def) { + if (filter(input)) { + return input; + } + return arguments.length > 2 ? def : void 0; +} +function filterPrimitives(input, omit) { + return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input)); +} +function filterPlainObject(input) { + return !!input && objectToString(input) === "[object Object]"; +} +function filterFunction(input) { + return typeof input === "function"; +} +var filterArray; +var filterString; +var filterStringArray; +var filterStringOrStringArray; +var filterHasLength; +var init_argument_filters = __esm({ + "src/lib/utils/argument-filters.ts"() { + init_util(); + filterArray = (input) => { + return Array.isArray(input); + }; + filterString = (input) => { + return typeof input === "string"; + }; + filterStringArray = (input) => { + return Array.isArray(input) && input.every(filterString); + }; + filterStringOrStringArray = (input) => { + return filterString(input) || Array.isArray(input) && input.every(filterString); + }; + filterHasLength = (input) => { + if (input == null || "number|boolean|function".includes(typeof input)) { + return false; + } + return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; + }; + } +}); +var ExitCodes; +var init_exit_codes = __esm({ + "src/lib/utils/exit-codes.ts"() { + ExitCodes = /* @__PURE__ */ ((ExitCodes2) => { + ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; + ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; + ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; + return ExitCodes2; + })(ExitCodes || {}); + } +}); +var GitOutputStreams; +var init_git_output_streams = __esm({ + "src/lib/utils/git-output-streams.ts"() { + GitOutputStreams = class { + constructor(stdOut, stdErr) { + this.stdOut = stdOut; + this.stdErr = stdErr; + } + asStrings() { + return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); + } + }; + } +}); +var LineParser; +var RemoteLineParser; +var init_line_parser = __esm({ + "src/lib/utils/line-parser.ts"() { + LineParser = class { + constructor(regExp, useMatches) { + this.matches = []; + this.parse = (line, target) => { + this.resetMatches(); + if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) { + return false; + } + return this.useMatches(target, this.prepareMatches()) !== false; + }; + this._regExp = Array.isArray(regExp) ? regExp : [regExp]; + if (useMatches) { + this.useMatches = useMatches; + } + } + useMatches(target, match) { + throw new Error(`LineParser:useMatches not implemented`); + } + resetMatches() { + this.matches.length = 0; + } + prepareMatches() { + return this.matches; + } + addMatch(reg, index, line) { + const matched = line && reg.exec(line); + if (matched) { + this.pushMatch(index, matched); + } + return !!matched; + } + pushMatch(_index, matched) { + this.matches.push(...matched.slice(1)); + } + }; + RemoteLineParser = class extends LineParser { + addMatch(reg, index, line) { + return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line); + } + pushMatch(index, matched) { + if (index > 0 || matched.length > 1) { + super.pushMatch(index, matched); + } + } + }; + } +}); +function createInstanceConfig(...options) { + const baseDir = process.cwd(); + const config = Object.assign(__spreadValues2({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); + config.baseDir = config.baseDir || baseDir; + return config; +} +var defaultOptions; +var init_simple_git_options = __esm({ + "src/lib/utils/simple-git-options.ts"() { + defaultOptions = { + binary: "git", + maxConcurrentProcesses: 5, + config: [] + }; + } +}); +function appendTaskOptions(options, commands = []) { + if (!filterPlainObject(options)) { + return commands; + } + return Object.keys(options).reduce((commands2, key2) => { + const value = options[key2]; + if (filterPrimitives(value, ["boolean"])) { + commands2.push(key2 + "=" + value); + } else { + commands2.push(key2); + } + return commands2; + }, commands); +} +function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) { + const command = []; + for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) { + if ("string|number".includes(typeof args[i])) { + command.push(String(args[i])); + } + } + appendTaskOptions(trailingOptionsArgument(args), command); + if (!objectOnly) { + command.push(...trailingArrayArgument(args)); + } + return command; +} +function trailingArrayArgument(args) { + const hasTrailingCallback = typeof last(args) === "function"; + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []); +} +function trailingOptionsArgument(args) { + const hasTrailingCallback = filterFunction(last(args)); + return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject); +} +function trailingFunctionArgument(args, includeNoop = true) { + const callback = asFunction(last(args)); + return includeNoop || isUserFunction(callback) ? callback : void 0; +} +var init_task_options = __esm({ + "src/lib/utils/task-options.ts"() { + init_argument_filters(); + init_util(); + } +}); +function callTaskParser(parser3, streams) { + return parser3(streams.stdOut, streams.stdErr); +} +function parseStringResponse(result, parsers11, ...texts) { + texts.forEach((text2) => { + for (let lines = toLinesWithContent(text2), i = 0, max = lines.length; i < max; i++) { + const line = (offset = 0) => { + if (i + offset >= max) { + return; + } + return lines[i + offset]; + }; + parsers11.some(({ parse }) => parse(line, result)); + } + }); + return result; +} +var init_task_parser = __esm({ + "src/lib/utils/task-parser.ts"() { + init_util(); + } +}); +var utils_exports = {}; +__export2(utils_exports, { + ExitCodes: () => ExitCodes, + GitOutputStreams: () => GitOutputStreams, + LineParser: () => LineParser, + NOOP: () => NOOP, + NULL: () => NULL, + RemoteLineParser: () => RemoteLineParser, + append: () => append, + appendTaskOptions: () => appendTaskOptions, + asArray: () => asArray, + asFunction: () => asFunction, + asNumber: () => asNumber, + asStringArray: () => asStringArray, + bufferToString: () => bufferToString, + callTaskParser: () => callTaskParser, + createInstanceConfig: () => createInstanceConfig, + delay: () => delay, + filterArray: () => filterArray, + filterFunction: () => filterFunction, + filterHasLength: () => filterHasLength, + filterPlainObject: () => filterPlainObject, + filterPrimitives: () => filterPrimitives, + filterString: () => filterString, + filterStringArray: () => filterStringArray, + filterStringOrStringArray: () => filterStringOrStringArray, + filterType: () => filterType, + first: () => first, + folderExists: () => folderExists, + forEachLineWithContent: () => forEachLineWithContent, + getTrailingOptions: () => getTrailingOptions, + including: () => including, + isUserFunction: () => isUserFunction, + last: () => last, + objectToString: () => objectToString, + parseStringResponse: () => parseStringResponse, + pick: () => pick, + prefixedArray: () => prefixedArray, + remove: () => remove, + splitOn: () => splitOn, + toLinesWithContent: () => toLinesWithContent, + trailingFunctionArgument: () => trailingFunctionArgument, + trailingOptionsArgument: () => trailingOptionsArgument +}); +var init_utils = __esm({ + "src/lib/utils/index.ts"() { + init_argument_filters(); + init_exit_codes(); + init_git_output_streams(); + init_line_parser(); + init_simple_git_options(); + init_task_options(); + init_task_parser(); + init_util(); + } +}); +var check_is_repo_exports = {}; +__export2(check_is_repo_exports, { + CheckRepoActions: () => CheckRepoActions, + checkIsBareRepoTask: () => checkIsBareRepoTask, + checkIsRepoRootTask: () => checkIsRepoRootTask, + checkIsRepoTask: () => checkIsRepoTask +}); +function checkIsRepoTask(action) { + switch (action) { + case "bare": + return checkIsBareRepoTask(); + case "root": + return checkIsRepoRootTask(); + } + const commands = ["rev-parse", "--is-inside-work-tree"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function checkIsRepoRootTask() { + const commands = ["rev-parse", "--git-dir"]; + return { + commands, + format: "utf-8", + onError, + parser(path3) { + return /^\.(git)?$/.test(path3.trim()); + } + }; +} +function checkIsBareRepoTask() { + const commands = ["rev-parse", "--is-bare-repository"]; + return { + commands, + format: "utf-8", + onError, + parser + }; +} +function isNotRepoMessage(error) { + return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); +} +var CheckRepoActions; +var onError; +var parser; +var init_check_is_repo = __esm({ + "src/lib/tasks/check-is-repo.ts"() { + init_utils(); + CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => { + CheckRepoActions2["BARE"] = "bare"; + CheckRepoActions2["IN_TREE"] = "tree"; + CheckRepoActions2["IS_REPO_ROOT"] = "root"; + return CheckRepoActions2; + })(CheckRepoActions || {}); + onError = ({ exitCode }, error, done, fail) => { + if (exitCode === 128 && isNotRepoMessage(error)) { + return done(Buffer.from("false")); + } + fail(error); + }; + parser = (text2) => { + return text2.trim() === "true"; + }; + } +}); +function cleanSummaryParser(dryRun, text2) { + const summary = new CleanResponse(dryRun); + const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; + toLinesWithContent(text2).forEach((line) => { + const removed = line.replace(regexp, ""); + summary.paths.push(removed); + (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); + }); + return summary; +} +var CleanResponse; +var removalRegexp; +var dryRunRemovalRegexp; +var isFolderRegexp; +var init_CleanSummary = __esm({ + "src/lib/responses/CleanSummary.ts"() { + init_utils(); + CleanResponse = class { + constructor(dryRun) { + this.dryRun = dryRun; + this.paths = []; + this.files = []; + this.folders = []; + } + }; + removalRegexp = /^[a-z]+\s*/i; + dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; + isFolderRegexp = /\/$/; + } +}); +var task_exports = {}; +__export2(task_exports, { + EMPTY_COMMANDS: () => EMPTY_COMMANDS, + adhocExecTask: () => adhocExecTask, + configurationErrorTask: () => configurationErrorTask, + isBufferTask: () => isBufferTask, + isEmptyTask: () => isEmptyTask, + straightThroughBufferTask: () => straightThroughBufferTask, + straightThroughStringTask: () => straightThroughStringTask +}); +function adhocExecTask(parser3) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser: parser3 + }; +} +function configurationErrorTask(error) { + return { + commands: EMPTY_COMMANDS, + format: "empty", + parser() { + throw typeof error === "string" ? new TaskConfigurationError(error) : error; + } + }; +} +function straightThroughStringTask(commands, trimmed2 = false) { + return { + commands, + format: "utf-8", + parser(text2) { + return trimmed2 ? String(text2).trim() : text2; + } + }; +} +function straightThroughBufferTask(commands) { + return { + commands, + format: "buffer", + parser(buffer) { + return buffer; + } + }; +} +function isBufferTask(task) { + return task.format === "buffer"; +} +function isEmptyTask(task) { + return task.format === "empty" || !task.commands.length; +} +var EMPTY_COMMANDS; +var init_task = __esm({ + "src/lib/tasks/task.ts"() { + init_task_configuration_error(); + EMPTY_COMMANDS = []; + } +}); +var clean_exports = {}; +__export2(clean_exports, { + CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE, + CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED, + CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION, + CleanOptions: () => CleanOptions, + cleanTask: () => cleanTask, + cleanWithOptionsTask: () => cleanWithOptionsTask, + isCleanOptionsArray: () => isCleanOptionsArray +}); +function cleanWithOptionsTask(mode, customArgs) { + const { cleanMode, options, valid } = getCleanOptions(mode); + if (!cleanMode) { + return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED); + } + if (!valid.options) { + return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); + } + options.push(...customArgs); + if (options.some(isInteractiveMode)) { + return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE); + } + return cleanTask(cleanMode, options); +} +function cleanTask(mode, customArgs) { + const commands = ["clean", `-${mode}`, ...customArgs]; + return { + commands, + format: "utf-8", + parser(text2) { + return cleanSummaryParser(mode === "n", text2); + } + }; +} +function isCleanOptionsArray(input) { + return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); +} +function getCleanOptions(input) { + let cleanMode; + let options = []; + let valid = { cleanMode: false, options: true }; + input.replace(/[^a-z]i/g, "").split("").forEach((char) => { + if (isCleanMode(char)) { + cleanMode = char; + valid.cleanMode = true; + } else { + valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`); + } + }); + return { + cleanMode, + options, + valid + }; +} +function isCleanMode(cleanMode) { + return cleanMode === "f" || cleanMode === "n"; +} +function isKnownOption(option) { + return /^-[a-z]$/i.test(option) && CleanOptionValues.has(option.charAt(1)); +} +function isInteractiveMode(option) { + if (/^-[^\-]/.test(option)) { + return option.indexOf("i") > 0; + } + return option === "--interactive"; +} +var CONFIG_ERROR_INTERACTIVE_MODE; +var CONFIG_ERROR_MODE_REQUIRED; +var CONFIG_ERROR_UNKNOWN_OPTION; +var CleanOptions; +var CleanOptionValues; +var init_clean = __esm({ + "src/lib/tasks/clean.ts"() { + init_CleanSummary(); + init_utils(); + init_task(); + CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; + CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; + CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; + CleanOptions = /* @__PURE__ */ ((CleanOptions2) => { + CleanOptions2["DRY_RUN"] = "n"; + CleanOptions2["FORCE"] = "f"; + CleanOptions2["IGNORED_INCLUDED"] = "x"; + CleanOptions2["IGNORED_ONLY"] = "X"; + CleanOptions2["EXCLUDING"] = "e"; + CleanOptions2["QUIET"] = "q"; + CleanOptions2["RECURSIVE"] = "d"; + return CleanOptions2; + })(CleanOptions || {}); + CleanOptionValues = /* @__PURE__ */ new Set(["i", ...asStringArray(Object.values(CleanOptions))]); + } +}); +function configListParser(text2) { + const config = new ConfigList(); + for (const item of configParser(text2)) { + config.addValue(item.file, String(item.key), item.value); + } + return config; +} +function configGetParser(text2, key2) { + let value = null; + const values = []; + const scopes = /* @__PURE__ */ new Map(); + for (const item of configParser(text2, key2)) { + if (item.key !== key2) { + continue; + } + values.push(value = item.value); + if (!scopes.has(item.file)) { + scopes.set(item.file, []); + } + scopes.get(item.file).push(value); + } + return { + key: key2, + paths: Array.from(scopes.keys()), + scopes, + value, + values + }; +} +function configFilePath(filePath) { + return filePath.replace(/^(file):/, ""); +} +function* configParser(text2, requestedKey = null) { + const lines = text2.split("\0"); + for (let i = 0, max = lines.length - 1; i < max; ) { + const file = configFilePath(lines[i++]); + let value = lines[i++]; + let key2 = requestedKey; + if (value.includes("\n")) { + const line = splitOn(value, "\n"); + key2 = line[0]; + value = line[1]; + } + yield { file, key: key2, value }; + } +} +var ConfigList; +var init_ConfigList = __esm({ + "src/lib/responses/ConfigList.ts"() { + init_utils(); + ConfigList = class { + constructor() { + this.files = []; + this.values = /* @__PURE__ */ Object.create(null); + } + get all() { + if (!this._all) { + this._all = this.files.reduce((all, file) => { + return Object.assign(all, this.values[file]); + }, {}); + } + return this._all; + } + addFile(file) { + if (!(file in this.values)) { + const latest = last(this.files); + this.values[file] = latest ? Object.create(this.values[latest]) : {}; + this.files.push(file); + } + return this.values[file]; + } + addValue(file, key2, value) { + const values = this.addFile(file); + if (!values.hasOwnProperty(key2)) { + values[key2] = value; + } else if (Array.isArray(values[key2])) { + values[key2].push(value); + } else { + values[key2] = [values[key2], value]; + } + this._all = void 0; + } + }; + } +}); +function asConfigScope(scope, fallback) { + if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { + return scope; + } + return fallback; +} +function addConfigTask(key2, value, append22, scope) { + const commands = ["config", `--${scope}`]; + if (append22) { + commands.push("--add"); + } + commands.push(key2, value); + return { + commands, + format: "utf-8", + parser(text2) { + return text2; + } + }; +} +function getConfigTask(key2, scope) { + const commands = ["config", "--null", "--show-origin", "--get-all", key2]; + if (scope) { + commands.splice(1, 0, `--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text2) { + return configGetParser(text2, key2); + } + }; +} +function listConfigTask(scope) { + const commands = ["config", "--list", "--show-origin", "--null"]; + if (scope) { + commands.push(`--${scope}`); + } + return { + commands, + format: "utf-8", + parser(text2) { + return configListParser(text2); + } + }; +} +function config_default() { + return { + addConfig(key2, value, ...rest) { + return this._runTask(addConfigTask(key2, value, rest[0] === true, asConfigScope(rest[1], "local")), trailingFunctionArgument(arguments)); + }, + getConfig(key2, scope) { + return this._runTask(getConfigTask(key2, asConfigScope(scope, void 0)), trailingFunctionArgument(arguments)); + }, + listConfig(...rest) { + return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), trailingFunctionArgument(arguments)); + } + }; +} +var GitConfigScope; +var init_config = __esm({ + "src/lib/tasks/config.ts"() { + init_ConfigList(); + init_utils(); + GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => { + GitConfigScope2["system"] = "system"; + GitConfigScope2["global"] = "global"; + GitConfigScope2["local"] = "local"; + GitConfigScope2["worktree"] = "worktree"; + return GitConfigScope2; + })(GitConfigScope || {}); + } +}); +function grepQueryBuilder(...params) { + return new GrepQuery().param(...params); +} +function parseGrep(grep) { + const paths = /* @__PURE__ */ new Set(); + const results = {}; + forEachLineWithContent(grep, (input) => { + const [path3, line, preview] = input.split(NULL); + paths.add(path3); + (results[path3] = results[path3] || []).push({ + line: asNumber(line), + path: path3, + preview + }); + }); + return { + paths, + results + }; +} +function grep_default() { + return { + grep(searchTerm) { + const then = trailingFunctionArgument(arguments); + const options = getTrailingOptions(arguments); + for (const option of disallowedOptions) { + if (options.includes(option)) { + return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then); + } + } + if (typeof searchTerm === "string") { + searchTerm = grepQueryBuilder().param(searchTerm); + } + const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm]; + return this._runTask({ + commands, + format: "utf-8", + parser(stdOut) { + return parseGrep(stdOut); + } + }, then); + } + }; +} +var disallowedOptions; +var Query; +var _a; +var GrepQuery; +var init_grep = __esm({ + "src/lib/tasks/grep.ts"() { + init_utils(); + init_task(); + disallowedOptions = ["-h"]; + Query = Symbol("grepQuery"); + GrepQuery = class { + constructor() { + this[_a] = []; + } + *[(_a = Query, Symbol.iterator)]() { + for (const query of this[Query]) { + yield query; + } + } + and(...and) { + and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")"); + return this; + } + param(...param) { + this[Query].push(...prefixedArray(param, "-e")); + return this; + } + }; + } +}); +var reset_exports = {}; +__export2(reset_exports, { + ResetMode: () => ResetMode, + getResetMode: () => getResetMode, + resetTask: () => resetTask +}); +function resetTask(mode, customArgs) { + const commands = ["reset"]; + if (isValidResetMode(mode)) { + commands.push(`--${mode}`); + } + commands.push(...customArgs); + return straightThroughStringTask(commands); +} +function getResetMode(mode) { + if (isValidResetMode(mode)) { + return mode; + } + switch (typeof mode) { + case "string": + case "undefined": + return "soft"; + } + return; +} +function isValidResetMode(mode) { + return ResetModes.includes(mode); +} +var ResetMode; +var ResetModes; +var init_reset = __esm({ + "src/lib/tasks/reset.ts"() { + init_task(); + ResetMode = /* @__PURE__ */ ((ResetMode2) => { + ResetMode2["MIXED"] = "mixed"; + ResetMode2["SOFT"] = "soft"; + ResetMode2["HARD"] = "hard"; + ResetMode2["MERGE"] = "merge"; + ResetMode2["KEEP"] = "keep"; + return ResetMode2; + })(ResetMode || {}); + ResetModes = Array.from(Object.values(ResetMode)); + } +}); +function createLog() { + return (0, import_debug.default)("simple-git"); +} +function prefixedLogger(to, prefix, forward) { + if (!prefix || !String(prefix).replace(/\s*/, "")) { + return !forward ? to : (message, ...args) => { + to(message, ...args); + forward(message, ...args); + }; + } + return (message, ...args) => { + to(`%s ${message}`, prefix, ...args); + if (forward) { + forward(message, ...args); + } + }; +} +function childLoggerName(name, childDebugger, { namespace: parentNamespace }) { + if (typeof name === "string") { + return name; + } + const childNamespace = childDebugger && childDebugger.namespace || ""; + if (childNamespace.startsWith(parentNamespace)) { + return childNamespace.substr(parentNamespace.length + 1); + } + return childNamespace || parentNamespace; +} +function createLogger(label, verbose, initialStep, infoDebugger = createLog()) { + const labelPrefix = label && `[${label}]` || ""; + const spawned = []; + const debugDebugger = typeof verbose === "string" ? infoDebugger.extend(verbose) : verbose; + const key2 = childLoggerName(filterType(verbose, filterString), debugDebugger, infoDebugger); + return step(initialStep); + function sibling(name, initial) { + return append(spawned, createLogger(label, key2.replace(/^[^:]+/, name), initial, infoDebugger)); + } + function step(phase) { + const stepPrefix = phase && `[${phase}]` || ""; + const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP; + const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2); + return Object.assign(debugDebugger ? debug2 : info, { + label, + sibling, + info, + step + }); + } +} +var init_git_logger = __esm({ + "src/lib/git-logger.ts"() { + init_utils(); + import_debug.default.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-"); + import_debug.default.formatters.B = (value) => { + if (Buffer.isBuffer(value)) { + return value.toString("utf8"); + } + return objectToString(value); + }; + } +}); +var _TasksPendingQueue; +var TasksPendingQueue; +var init_tasks_pending_queue = __esm({ + "src/lib/runners/tasks-pending-queue.ts"() { + init_git_error(); + init_git_logger(); + _TasksPendingQueue = class { + constructor(logLabel = "GitExecutor") { + this.logLabel = logLabel; + this._queue = /* @__PURE__ */ new Map(); + } + withProgress(task) { + return this._queue.get(task); + } + createProgress(task) { + const name = _TasksPendingQueue.getName(task.commands[0]); + const logger = createLogger(this.logLabel, name); + return { + task, + logger, + name + }; + } + push(task) { + const progress = this.createProgress(task); + progress.logger("Adding task to the queue, commands = %o", task.commands); + this._queue.set(task, progress); + return progress; + } + fatal(err) { + for (const [task, { logger }] of Array.from(this._queue.entries())) { + if (task === err.task) { + logger.info(`Failed %o`, err); + logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`); + } else { + logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message); + } + this.complete(task); + } + if (this._queue.size !== 0) { + throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`); + } + } + complete(task) { + const progress = this.withProgress(task); + if (progress) { + this._queue.delete(task); + } + } + attempt(task) { + const progress = this.withProgress(task); + if (!progress) { + throw new GitError(void 0, "TasksPendingQueue: attempt called for an unknown task"); + } + progress.logger("Starting task"); + return progress; + } + static getName(name = "empty") { + return `task:${name}:${++_TasksPendingQueue.counter}`; + } + }; + TasksPendingQueue = _TasksPendingQueue; + TasksPendingQueue.counter = 0; + } +}); +function pluginContext(task, commands) { + return { + method: first(task.commands) || "", + commands + }; +} +function onErrorReceived(target, logger) { + return (err) => { + logger(`[ERROR] child process exception %o`, err); + target.push(Buffer.from(String(err.stack), "ascii")); + }; +} +function onDataReceived(target, name, logger, output) { + return (buffer) => { + logger(`%s received %L bytes`, name, buffer); + output(`%B`, buffer); + target.push(buffer); + }; +} +var GitExecutorChain; +var init_git_executor_chain = __esm({ + "src/lib/runners/git-executor-chain.ts"() { + init_git_error(); + init_task(); + init_utils(); + init_tasks_pending_queue(); + GitExecutorChain = class { + constructor(_executor, _scheduler, _plugins) { + this._executor = _executor; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = Promise.resolve(); + this._queue = new TasksPendingQueue(); + } + get binary() { + return this._executor.binary; + } + get cwd() { + return this._cwd || this._executor.cwd; + } + set cwd(cwd) { + this._cwd = cwd; + } + get env() { + return this._executor.env; + } + get outputHandler() { + return this._executor.outputHandler; + } + chain() { + return this; + } + push(task) { + this._queue.push(task); + return this._chain = this._chain.then(() => this.attemptTask(task)); + } + attemptTask(task) { + return __async2(this, null, function* () { + const onScheduleComplete = yield this._scheduler.next(); + const onQueueComplete = () => this._queue.complete(task); + try { + const { logger } = this._queue.attempt(task); + return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger) : this.attemptRemoteTask(task, logger); + } catch (e) { + throw this.onFatalException(task, e); + } finally { + onQueueComplete(); + onScheduleComplete(); + } + }); + } + onFatalException(task, e) { + const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e)); + this._chain = Promise.resolve(); + this._queue.fatal(gitError); + return gitError; + } + attemptRemoteTask(task, logger) { + return __async2(this, null, function* () { + const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands)); + const raw = yield this.gitResponse(task, this.binary, args, this.outputHandler, logger.step("SPAWN")); + const outputStreams = yield this.handleTaskData(task, args, raw, logger.step("HANDLE")); + logger(`passing response to task's parser as a %s`, task.format); + if (isBufferTask(task)) { + return callTaskParser(task.parser, outputStreams); + } + return callTaskParser(task.parser, outputStreams.asStrings()); + }); + } + attemptEmptyTask(task, logger) { + return __async2(this, null, function* () { + logger(`empty task bypassing child process to call to task's parser`); + return task.parser(this); + }); + } + handleTaskData(task, args, result, logger) { + const { exitCode, rejection, stdOut, stdErr } = result; + return new Promise((done, fail) => { + logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode); + const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues2(__spreadValues2({}, pluginContext(task, args)), result)); + if (error && task.onError) { + logger.info(`exitCode=%s handling with custom error handler`); + return task.onError(result, error, (newStdOut) => { + logger.info(`custom error handler treated as success`); + logger(`custom error returned a %s`, objectToString(newStdOut)); + done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr))); + }, fail); + } + if (error) { + logger.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection); + return fail(error); + } + logger.info(`retrieving task output complete`); + done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); + }); + } + gitResponse(task, command, args, outputHandler, logger) { + return __async2(this, null, function* () { + const outputLogger = logger.sibling("output"); + const spawnOptions = this._plugins.exec("spawn.options", { + cwd: this.cwd, + env: this.env, + windowsHide: true + }, pluginContext(task, task.commands)); + return new Promise((done) => { + const stdOut = []; + const stdErr = []; + let rejection; + logger.info(`%s %o`, command, args); + logger("%O", spawnOptions); + const spawned = (0, import_child_process.spawn)(command, args, spawnOptions); + spawned.stdout.on("data", onDataReceived(stdOut, "stdOut", logger, outputLogger.step("stdOut"))); + spawned.stderr.on("data", onDataReceived(stdErr, "stdErr", logger, outputLogger.step("stdErr"))); + spawned.on("error", onErrorReceived(stdErr, logger)); + if (outputHandler) { + logger(`Passing child process stdOut/stdErr to custom outputHandler`); + outputHandler(command, spawned.stdout, spawned.stderr, [...args]); + } + this._plugins.exec("spawn.after", void 0, __spreadProps2(__spreadValues2({}, pluginContext(task, args)), { + spawned, + close(exitCode, reason) { + done({ + stdOut, + stdErr, + exitCode, + rejection: rejection || reason + }); + }, + kill(reason) { + if (spawned.killed) { + return; + } + rejection = reason; + spawned.kill("SIGINT"); + } + })); + }); + }); + } + }; + } +}); +var git_executor_exports = {}; +__export2(git_executor_exports, { + GitExecutor: () => GitExecutor +}); +var GitExecutor; +var init_git_executor = __esm({ + "src/lib/runners/git-executor.ts"() { + init_git_executor_chain(); + GitExecutor = class { + constructor(binary = "git", cwd, _scheduler, _plugins) { + this.binary = binary; + this.cwd = cwd; + this._scheduler = _scheduler; + this._plugins = _plugins; + this._chain = new GitExecutorChain(this, this._scheduler, this._plugins); + } + chain() { + return new GitExecutorChain(this, this._scheduler, this._plugins); + } + push(task) { + return this._chain.push(task); + } + }; + } +}); +function taskCallback(task, response, callback = NOOP) { + const onSuccess = (data) => { + callback(null, data); + }; + const onError2 = (err) => { + if ((err == null ? void 0 : err.task) === task) { + callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, void 0); + } + }; + response.then(onSuccess, onError2); +} +function addDeprecationNoticeToError(err) { + let log = (name) => { + console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`); + log = NOOP; + }; + return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {})); + function descriptorReducer(all, name) { + if (name in err) { + return all; + } + all[name] = { + enumerable: false, + configurable: false, + get() { + log(name); + return err.git[name]; + } + }; + return all; + } +} +var init_task_callback = __esm({ + "src/lib/task-callback.ts"() { + init_git_response_error(); + init_utils(); + } +}); +function changeWorkingDirectoryTask(directory, root) { + return adhocExecTask((instance5) => { + if (!folderExists(directory)) { + throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); + } + return (root || instance5).cwd = directory; + }); +} +var init_change_working_directory = __esm({ + "src/lib/tasks/change-working-directory.ts"() { + init_utils(); + init_task(); + } +}); +function hashObjectTask(filePath, write) { + const commands = ["hash-object", filePath]; + if (write) { + commands.push("-w"); + } + return straightThroughStringTask(commands, true); +} +var init_hash_object = __esm({ + "src/lib/tasks/hash-object.ts"() { + init_task(); + } +}); +function parseInit(bare, path3, text2) { + const response = String(text2).trim(); + let result; + if (result = initResponseRegex.exec(response)) { + return new InitSummary(bare, path3, false, result[1]); + } + if (result = reInitResponseRegex.exec(response)) { + return new InitSummary(bare, path3, true, result[1]); + } + let gitDir = ""; + const tokens = response.split(" "); + while (tokens.length) { + const token = tokens.shift(); + if (token === "in") { + gitDir = tokens.join(" "); + break; + } + } + return new InitSummary(bare, path3, /^re/i.test(response), gitDir); +} +var InitSummary; +var initResponseRegex; +var reInitResponseRegex; +var init_InitSummary = __esm({ + "src/lib/responses/InitSummary.ts"() { + InitSummary = class { + constructor(bare, path3, existing, gitDir) { + this.bare = bare; + this.path = path3; + this.existing = existing; + this.gitDir = gitDir; + } + }; + initResponseRegex = /^Init.+ repository in (.+)$/; + reInitResponseRegex = /^Rein.+ in (.+)$/; + } +}); +function hasBareCommand(command) { + return command.includes(bareCommand); +} +function initTask(bare = false, path3, customArgs) { + const commands = ["init", ...customArgs]; + if (bare && !hasBareCommand(commands)) { + commands.splice(1, 0, bareCommand); + } + return { + commands, + format: "utf-8", + parser(text2) { + return parseInit(commands.includes("--bare"), path3, text2); + } + }; +} +var bareCommand; +var init_init = __esm({ + "src/lib/tasks/init.ts"() { + init_InitSummary(); + bareCommand = "--bare"; + } +}); +var DiffSummary; +var init_DiffSummary = __esm({ + "src/lib/responses/DiffSummary.ts"() { + DiffSummary = class { + constructor() { + this.changed = 0; + this.deletions = 0; + this.insertions = 0; + this.files = []; + } + }; + } +}); +function parseDiffResult(stdOut) { + const lines = stdOut.trim().split("\n"); + const status = new DiffSummary(); + readSummaryLine(status, lines.pop()); + for (let i = 0, max = lines.length; i < max; i++) { + const line = lines[i]; + textFileChange(line, status) || binaryFileChange(line, status); + } + return status; +} +function readSummaryLine(status, summary) { + (summary || "").trim().split(", ").forEach(function(text2) { + const summary2 = /(\d+)\s([a-z]+)/.exec(text2); + if (!summary2) { + return; + } + summaryType(status, summary2[2], parseInt(summary2[1], 10)); + }); +} +function summaryType(status, key2, value) { + const match = /([a-z]+?)s?\b/.exec(key2); + if (!match || !statusUpdate[match[1]]) { + return; + } + statusUpdate[match[1]](status, value); +} +function textFileChange(input, { files }) { + const line = input.trim().match(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/); + if (line) { + var alterations = (line[3] || "").trim(); + files.push({ + file: line[1].trim(), + changes: parseInt(line[2], 10), + insertions: alterations.replace(/-/g, "").length, + deletions: alterations.replace(/\+/g, "").length, + binary: false + }); + return true; + } + return false; +} +function binaryFileChange(input, { files }) { + const line = input.match(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)$/); + if (line) { + files.push({ + file: line[1].trim(), + before: +line[2], + after: +line[3], + binary: true + }); + return true; + } + return false; +} +var statusUpdate; +var init_parse_diff_summary = __esm({ + "src/lib/parsers/parse-diff-summary.ts"() { + init_DiffSummary(); + statusUpdate = { + file(status, value) { + status.changed = value; + }, + deletion(status, value) { + status.deletions = value; + }, + insertion(status, value) { + status.insertions = value; + } + }; + } +}); +function lineBuilder(tokens, fields) { + return fields.reduce((line, field, index) => { + line[field] = tokens[index] || ""; + return line; + }, /* @__PURE__ */ Object.create({ diff: null })); +} +function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames) { + return function(stdOut) { + const all = toLinesWithContent(stdOut, true, START_BOUNDARY).map(function(item) { + const lineDetail = item.trim().split(COMMIT_BOUNDARY); + const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); + if (lineDetail.length > 1 && !!lineDetail[1].trim()) { + listLogLine.diff = parseDiffResult(lineDetail[1]); + } + return listLogLine; + }); + return { + all, + latest: all.length && all[0] || null, + total: all.length + }; + }; +} +var START_BOUNDARY; +var COMMIT_BOUNDARY; +var SPLITTER; +var defaultFieldNames; +var init_parse_list_log_summary = __esm({ + "src/lib/parsers/parse-list-log-summary.ts"() { + init_utils(); + init_parse_diff_summary(); + START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 "; + COMMIT_BOUNDARY = " \xF2\xF2"; + SPLITTER = " \xF2 "; + defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; + } +}); +function prettyFormat(format, splitter) { + const fields = []; + const formatStr = []; + Object.keys(format).forEach((field) => { + fields.push(field); + formatStr.push(String(format[field])); + }); + return [ + fields, + formatStr.join(splitter) + ]; +} +function userOptions(input) { + return Object.keys(input).reduce((out, key2) => { + if (!(key2 in excludeOptions)) { + out[key2] = input[key2]; + } + return out; + }, {}); +} +function parseLogOptions(opt = {}, customArgs = []) { + const splitter = filterType(opt.splitter, filterString, SPLITTER); + const format = !filterPrimitives(opt.format) && opt.format ? opt.format : { + hash: "%H", + date: opt.strictDate === false ? "%ai" : "%aI", + message: "%s", + refs: "%D", + body: opt.multiLine ? "%B" : "%b", + author_name: opt.mailMap !== false ? "%aN" : "%an", + author_email: opt.mailMap !== false ? "%aE" : "%ae" + }; + const [fields, formatStr] = prettyFormat(format, splitter); + const suffix = []; + const command = [ + `--pretty=format:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`, + ...customArgs + ]; + const maxCount = opt.n || opt["max-count"] || opt.maxCount; + if (maxCount) { + command.push(`--max-count=${maxCount}`); + } + if (opt.from && opt.to) { + const rangeOperator = opt.symmetric !== false ? "..." : ".."; + suffix.push(`${opt.from}${rangeOperator}${opt.to}`); + } + if (filterString(opt.file)) { + suffix.push("--follow", opt.file); + } + appendTaskOptions(userOptions(opt), command); + return { + fields, + splitter, + commands: [ + ...command, + ...suffix + ] + }; +} +function logTask(splitter, fields, customArgs) { + return { + commands: ["log", ...customArgs], + format: "utf-8", + parser: createListLogSummaryParser(splitter, fields) + }; +} +function log_default() { + return { + log(...rest) { + const next = trailingFunctionArgument(arguments); + const task = rejectDeprecatedSignatures(...rest) || createLogTask(parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray))); + return this._runTask(task, next); + } + }; + function createLogTask(options) { + return logTask(options.splitter, options.fields, options.commands); + } + function rejectDeprecatedSignatures(from, to) { + return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); + } +} +var excludeOptions; +var init_log = __esm({ + "src/lib/tasks/log.ts"() { + init_parse_list_log_summary(); + init_utils(); + init_task(); + excludeOptions = /* @__PURE__ */ ((excludeOptions2) => { + excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty"; + excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count"; + excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount"; + excludeOptions2[excludeOptions2["n"] = 3] = "n"; + excludeOptions2[excludeOptions2["file"] = 4] = "file"; + excludeOptions2[excludeOptions2["format"] = 5] = "format"; + excludeOptions2[excludeOptions2["from"] = 6] = "from"; + excludeOptions2[excludeOptions2["to"] = 7] = "to"; + excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter"; + excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric"; + excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap"; + excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine"; + excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate"; + return excludeOptions2; + })(excludeOptions || {}); + } +}); +var MergeSummaryConflict; +var MergeSummaryDetail; +var init_MergeSummary = __esm({ + "src/lib/responses/MergeSummary.ts"() { + MergeSummaryConflict = class { + constructor(reason, file = null, meta) { + this.reason = reason; + this.file = file; + this.meta = meta; + } + toString() { + return `${this.file}:${this.reason}`; + } + }; + MergeSummaryDetail = class { + constructor() { + this.conflicts = []; + this.merges = []; + this.result = "success"; + } + get failed() { + return this.conflicts.length > 0; + } + get reason() { + return this.result; + } + toString() { + if (this.conflicts.length) { + return `CONFLICTS: ${this.conflicts.join(", ")}`; + } + return "OK"; + } + }; + } +}); +var PullSummary; +var PullFailedSummary; +var init_PullSummary = __esm({ + "src/lib/responses/PullSummary.ts"() { + PullSummary = class { + constructor() { + this.remoteMessages = { + all: [] + }; + this.created = []; + this.deleted = []; + this.files = []; + this.deletions = {}; + this.insertions = {}; + this.summary = { + changes: 0, + deletions: 0, + insertions: 0 + }; + } + }; + PullFailedSummary = class { + constructor() { + this.remote = ""; + this.hash = { + local: "", + remote: "" + }; + this.branch = { + local: "", + remote: "" + }; + this.message = ""; + } + toString() { + return this.message; + } + }; + } +}); +function objectEnumerationResult(remoteMessages) { + return remoteMessages.objects = remoteMessages.objects || { + compressing: 0, + counting: 0, + enumerating: 0, + packReused: 0, + reused: { count: 0, delta: 0 }, + total: { count: 0, delta: 0 } + }; +} +function asObjectCount(source) { + const count = /^\s*(\d+)/.exec(source); + const delta = /delta (\d+)/i.exec(source); + return { + count: asNumber(count && count[1] || "0"), + delta: asNumber(delta && delta[1] || "0") + }; +} +var remoteMessagesObjectParsers; +var init_parse_remote_objects = __esm({ + "src/lib/parsers/parse-remote-objects.ts"() { + init_utils(); + remoteMessagesObjectParsers = [ + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { + const key2 = action.toLowerCase(); + const enumeration = objectEnumerationResult(result.remoteMessages); + Object.assign(enumeration, { [key2]: asNumber(count) }); + }), + new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => { + const objects = objectEnumerationResult(result.remoteMessages); + objects.total = asObjectCount(total); + objects.reused = asObjectCount(reused); + objects.packReused = asNumber(packReused); + }) + ]; + } +}); +function parseRemoteMessages(_stdOut, stdErr) { + return parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers, stdErr); +} +var parsers; +var RemoteMessageSummary; +var init_parse_remote_messages = __esm({ + "src/lib/parsers/parse-remote-messages.ts"() { + init_utils(); + init_parse_remote_objects(); + parsers = [ + new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text2]) => { + result.remoteMessages.all.push(text2.trim()); + return false; + }), + ...remoteMessagesObjectParsers, + new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { + result.remoteMessages.pullRequestUrl = pullRequestUrl; + }), + new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { + result.remoteMessages.vulnerabilities = { + count: asNumber(count), + summary, + url + }; + }) + ]; + RemoteMessageSummary = class { + constructor() { + this.all = []; + } + }; + } +}); +function parsePullErrorResult(stdOut, stdErr) { + const pullError = parseStringResponse(new PullFailedSummary(), errorParsers, stdOut, stdErr); + return pullError.message && pullError; +} +var FILE_UPDATE_REGEX; +var SUMMARY_REGEX; +var ACTION_REGEX; +var parsers2; +var errorParsers; +var parsePullDetail; +var parsePullResult; +var init_parse_pull = __esm({ + "src/lib/parsers/parse-pull.ts"() { + init_PullSummary(); + init_utils(); + init_parse_remote_messages(); + FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; + SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; + ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; + parsers2 = [ + new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => { + result.files.push(file); + if (insertions) { + result.insertions[file] = insertions.length; + } + if (deletions) { + result.deletions[file] = deletions.length; + } + }), + new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => { + if (insertions !== void 0 || deletions !== void 0) { + result.summary.changes = +changes || 0; + result.summary.insertions = +insertions || 0; + result.summary.deletions = +deletions || 0; + return true; + } + return false; + }), + new LineParser(ACTION_REGEX, (result, [action, file]) => { + append(result.files, file); + append(action === "create" ? result.created : result.deleted, file); + }) + ]; + errorParsers = [ + new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)), + new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)), + new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => { + result.branch.local = branchLocal; + result.hash.local = hashLocal; + result.branch.remote = branchRemote; + result.hash.remote = hashRemote; + }) + ]; + parsePullDetail = (stdOut, stdErr) => { + return parseStringResponse(new PullSummary(), parsers2, stdOut, stdErr); + }; + parsePullResult = (stdOut, stdErr) => { + return Object.assign(new PullSummary(), parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr)); + }; + } +}); +var parsers3; +var parseMergeResult; +var parseMergeDetail; +var init_parse_merge = __esm({ + "src/lib/parsers/parse-merge.ts"() { + init_MergeSummary(); + init_utils(); + init_parse_pull(); + parsers3 = [ + new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { + summary.merges.push(autoMerge); + }), + new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file)); + }), + new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef })); + }), + new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { + summary.conflicts.push(new MergeSummaryConflict(reason, null)); + }), + new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { + summary.result = result; + }) + ]; + parseMergeResult = (stdOut, stdErr) => { + return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr)); + }; + parseMergeDetail = (stdOut) => { + return parseStringResponse(new MergeSummaryDetail(), parsers3, stdOut); + }; + } +}); +function mergeTask(customArgs) { + if (!customArgs.length) { + return configurationErrorTask("Git.merge requires at least one option"); + } + return { + commands: ["merge", ...customArgs], + format: "utf-8", + parser(stdOut, stdErr) { + const merge = parseMergeResult(stdOut, stdErr); + if (merge.failed) { + throw new GitResponseError(merge); + } + return merge; + } + }; +} +var init_merge = __esm({ + "src/lib/tasks/merge.ts"() { + init_git_response_error(); + init_parse_merge(); + init_task(); + } +}); +function pushResultPushedItem(local, remote, status) { + const deleted = status.includes("deleted"); + const tag = status.includes("tag") || /^refs\/tags/.test(local); + const alreadyUpdated = !status.includes("new"); + return { + deleted, + tag, + branch: !tag, + new: !alreadyUpdated, + alreadyUpdated, + local, + remote + }; +} +var parsers4; +var parsePushResult; +var parsePushDetail; +var init_parse_push = __esm({ + "src/lib/parsers/parse-push.ts"() { + init_utils(); + init_parse_remote_messages(); + parsers4 = [ + new LineParser(/^Pushing to (.+)$/, (result, [repo]) => { + result.repo = repo; + }), + new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { + result.ref = __spreadProps2(__spreadValues2({}, result.ref || {}), { + local + }); + }), + new LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { + result.pushed.push(pushResultPushedItem(local, remote, type)); + }), + new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { + result.branch = __spreadProps2(__spreadValues2({}, result.branch || {}), { + local, + remote, + remoteName + }); + }), + new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { + result.update = { + head: { + local, + remote + }, + hash: { + from, + to + } + }; + }) + ]; + parsePushResult = (stdOut, stdErr) => { + const pushDetail = parsePushDetail(stdOut, stdErr); + const responseDetail = parseRemoteMessages(stdOut, stdErr); + return __spreadValues2(__spreadValues2({}, pushDetail), responseDetail); + }; + parsePushDetail = (stdOut, stdErr) => { + return parseStringResponse({ pushed: [] }, parsers4, stdOut, stdErr); + }; + } +}); +var push_exports = {}; +__export2(push_exports, { + pushTagsTask: () => pushTagsTask, + pushTask: () => pushTask +}); +function pushTagsTask(ref = {}, customArgs) { + append(customArgs, "--tags"); + return pushTask(ref, customArgs); +} +function pushTask(ref = {}, customArgs) { + const commands = ["push", ...customArgs]; + if (ref.branch) { + commands.splice(1, 0, ref.branch); + } + if (ref.remote) { + commands.splice(1, 0, ref.remote); + } + remove(commands, "-v"); + append(commands, "--verbose"); + append(commands, "--porcelain"); + return { + commands, + format: "utf-8", + parser: parsePushResult + }; +} +var init_push = __esm({ + "src/lib/tasks/push.ts"() { + init_parse_push(); + init_utils(); + } +}); +var fromPathRegex; +var FileStatusSummary; +var init_FileStatusSummary = __esm({ + "src/lib/responses/FileStatusSummary.ts"() { + fromPathRegex = /^(.+) -> (.+)$/; + FileStatusSummary = class { + constructor(path3, index, working_dir) { + this.path = path3; + this.index = index; + this.working_dir = working_dir; + if (index + working_dir === "R") { + const detail = fromPathRegex.exec(path3) || [null, path3, path3]; + this.from = detail[1] || ""; + this.path = detail[2] || ""; + } + } + }; + } +}); +function renamedFile(line) { + const detail = /^(.+) -> (.+)$/.exec(line); + if (!detail) { + return { + from: line, + to: line + }; + } + return { + from: String(detail[1]), + to: String(detail[2]) + }; +} +function parser2(indexX, indexY, handler) { + return [`${indexX}${indexY}`, handler]; +} +function conflicts(indexX, ...indexY) { + return indexY.map((y) => parser2(indexX, y, (result, file) => append(result.conflicted, file))); +} +function splitLine(result, lineStr) { + const trimmed2 = lineStr.trim(); + switch (" ") { + case trimmed2.charAt(2): + return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3)); + case trimmed2.charAt(1): + return data(" ", trimmed2.charAt(0), trimmed2.substr(2)); + default: + return; + } + function data(index, workingDir, path3) { + const raw = `${index}${workingDir}`; + const handler = parsers5.get(raw); + if (handler) { + handler(result, path3); + } + if (raw !== "##" && raw !== "!!") { + result.files.push(new FileStatusSummary(path3, index, workingDir)); + } + } +} +var StatusSummary; +var parsers5; +var parseStatusSummary; +var init_StatusSummary = __esm({ + "src/lib/responses/StatusSummary.ts"() { + init_utils(); + init_FileStatusSummary(); + StatusSummary = class { + constructor() { + this.not_added = []; + this.conflicted = []; + this.created = []; + this.deleted = []; + this.ignored = void 0; + this.modified = []; + this.renamed = []; + this.files = []; + this.staged = []; + this.ahead = 0; + this.behind = 0; + this.current = null; + this.tracking = null; + this.detached = false; + this.isClean = () => { + return !this.files.length; + }; + } + }; + parsers5 = new Map([ + parser2(" ", "A", (result, file) => append(result.created, file)), + parser2(" ", "D", (result, file) => append(result.deleted, file)), + parser2(" ", "M", (result, file) => append(result.modified, file)), + parser2("A", " ", (result, file) => append(result.created, file) && append(result.staged, file)), + parser2("A", "M", (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)), + parser2("D", " ", (result, file) => append(result.deleted, file) && append(result.staged, file)), + parser2("M", " ", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("M", "M", (result, file) => append(result.modified, file) && append(result.staged, file)), + parser2("R", " ", (result, file) => { + append(result.renamed, renamedFile(file)); + }), + parser2("R", "M", (result, file) => { + const renamed = renamedFile(file); + append(result.renamed, renamed); + append(result.modified, renamed.to); + }), + parser2("!", "!", (_result, _file) => { + append(_result.ignored = _result.ignored || [], _file); + }), + parser2("?", "?", (result, file) => append(result.not_added, file)), + ...conflicts("A", "A", "U"), + ...conflicts("D", "D", "U"), + ...conflicts("U", "A", "D", "U"), + ["##", (result, line) => { + const aheadReg = /ahead (\d+)/; + const behindReg = /behind (\d+)/; + const currentReg = /^(.+?(?=(?:\.{3}|\s|$)))/; + const trackingReg = /\.{3}(\S*)/; + const onEmptyBranchReg = /\son\s([\S]+)$/; + let regexResult; + regexResult = aheadReg.exec(line); + result.ahead = regexResult && +regexResult[1] || 0; + regexResult = behindReg.exec(line); + result.behind = regexResult && +regexResult[1] || 0; + regexResult = currentReg.exec(line); + result.current = regexResult && regexResult[1]; + regexResult = trackingReg.exec(line); + result.tracking = regexResult && regexResult[1]; + regexResult = onEmptyBranchReg.exec(line); + result.current = regexResult && regexResult[1] || result.current; + result.detached = /\(no branch\)/.test(line); + }] + ]); + parseStatusSummary = function(text2) { + const lines = text2.trim().split(NULL); + const status = new StatusSummary(); + for (let i = 0, l = lines.length; i < l; i++) { + splitLine(status, lines[i]); + } + return status; + }; + } +}); +function statusTask(customArgs) { + const commands = [ + "status", + "--porcelain", + "-b", + "-u", + "--null", + ...customArgs.filter((arg) => !ignoredOptions.includes(arg)) + ]; + return { + format: "utf-8", + commands, + parser(text2) { + return parseStatusSummary(text2); + } + }; +} +var ignoredOptions; +var init_status = __esm({ + "src/lib/tasks/status.ts"() { + init_StatusSummary(); + ignoredOptions = ["--null", "-z"]; + } +}); +var simple_git_api_exports = {}; +__export2(simple_git_api_exports, { + SimpleGitApi: () => SimpleGitApi +}); +var SimpleGitApi; +var init_simple_git_api = __esm({ + "src/lib/simple-git-api.ts"() { + init_task_callback(); + init_change_working_directory(); + init_config(); + init_grep(); + init_hash_object(); + init_init(); + init_log(); + init_merge(); + init_push(); + init_status(); + init_task(); + init_utils(); + SimpleGitApi = class { + constructor(_executor) { + this._executor = _executor; + } + _runTask(task, then) { + const chain = this._executor.chain(); + const promise2 = chain.push(task); + if (then) { + taskCallback(task, promise2, then); + } + return Object.create(this, { + then: { value: promise2.then.bind(promise2) }, + catch: { value: promise2.catch.bind(promise2) }, + _executor: { value: chain } + }); + } + add(files) { + return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments)); + } + cwd(directory) { + const next = trailingFunctionArgument(arguments); + if (typeof directory === "string") { + return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next); + } + if (typeof (directory == null ? void 0 : directory.path) === "string") { + return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next); + } + return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); + } + hashObject(path3, write) { + return this._runTask(hashObjectTask(path3, write === true), trailingFunctionArgument(arguments)); + } + init(bare) { + return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + merge() { + return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + mergeFromTo(remote, branch) { + if (!(filterString(remote) && filterString(branch))) { + return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); + } + return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false)); + } + outputHandler(handler) { + this._executor.outputHandler = handler; + return this; + } + push() { + const task = pushTask({ + remote: filterType(arguments[0], filterString), + branch: filterType(arguments[1], filterString) + }, getTrailingOptions(arguments)); + return this._runTask(task, trailingFunctionArgument(arguments)); + } + stash() { + return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); + } + status() { + return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); + } + }; + Object.assign(SimpleGitApi.prototype, config_default(), grep_default(), log_default()); + } +}); +var scheduler_exports = {}; +__export2(scheduler_exports, { + Scheduler: () => Scheduler +}); +var createScheduledTask; +var Scheduler; +var init_scheduler = __esm({ + "src/lib/runners/scheduler.ts"() { + init_utils(); + init_git_logger(); + createScheduledTask = (() => { + let id = 0; + return () => { + id++; + const { promise: promise2, done } = (0, import_promise_deferred.createDeferred)(); + return { + promise: promise2, + done, + id + }; + }; + })(); + Scheduler = class { + constructor(concurrency = 2) { + this.concurrency = concurrency; + this.logger = createLogger("", "scheduler"); + this.pending = []; + this.running = []; + this.logger(`Constructed, concurrency=%s`, concurrency); + } + schedule() { + if (!this.pending.length || this.running.length >= this.concurrency) { + this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency); + return; + } + const task = append(this.running, this.pending.shift()); + this.logger(`Attempting id=%s`, task.id); + task.done(() => { + this.logger(`Completing id=`, task.id); + remove(this.running, task); + this.schedule(); + }); + } + next() { + const { promise: promise2, id } = append(this.pending, createScheduledTask()); + this.logger(`Scheduling id=%s`, id); + this.schedule(); + return promise2; + } + }; + } +}); +var apply_patch_exports = {}; +__export2(apply_patch_exports, { + applyPatchTask: () => applyPatchTask +}); +function applyPatchTask(patches, customArgs) { + return straightThroughStringTask(["apply", ...customArgs, ...patches]); +} +var init_apply_patch = __esm({ + "src/lib/tasks/apply-patch.ts"() { + init_task(); + } +}); +function branchDeletionSuccess(branch, hash2) { + return { + branch, + hash: hash2, + success: true + }; +} +function branchDeletionFailure(branch) { + return { + branch, + hash: null, + success: false + }; +} +var BranchDeletionBatch; +var init_BranchDeleteSummary = __esm({ + "src/lib/responses/BranchDeleteSummary.ts"() { + BranchDeletionBatch = class { + constructor() { + this.all = []; + this.branches = {}; + this.errors = []; + } + get success() { + return !this.errors.length; + } + }; + } +}); +function hasBranchDeletionError(data, processExitCode) { + return processExitCode === 1 && deleteErrorRegex.test(data); +} +var deleteSuccessRegex; +var deleteErrorRegex; +var parsers6; +var parseBranchDeletions; +var init_parse_branch_delete = __esm({ + "src/lib/parsers/parse-branch-delete.ts"() { + init_BranchDeleteSummary(); + init_utils(); + deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; + deleteErrorRegex = /^error[^']+'([^']+)'/m; + parsers6 = [ + new LineParser(deleteSuccessRegex, (result, [branch, hash2]) => { + const deletion = branchDeletionSuccess(branch, hash2); + result.all.push(deletion); + result.branches[branch] = deletion; + }), + new LineParser(deleteErrorRegex, (result, [branch]) => { + const deletion = branchDeletionFailure(branch); + result.errors.push(deletion); + result.all.push(deletion); + result.branches[branch] = deletion; + }) + ]; + parseBranchDeletions = (stdOut, stdErr) => { + return parseStringResponse(new BranchDeletionBatch(), parsers6, stdOut, stdErr); + }; + } +}); +var BranchSummaryResult; +var init_BranchSummary = __esm({ + "src/lib/responses/BranchSummary.ts"() { + BranchSummaryResult = class { + constructor() { + this.all = []; + this.branches = {}; + this.current = ""; + this.detached = false; + } + push(current, detached, name, commit, label) { + if (current) { + this.detached = detached; + this.current = name; + } + this.all.push(name); + this.branches[name] = { + current, + name, + commit, + label + }; + } + }; + } +}); +function parseBranchSummary(stdOut) { + return parseStringResponse(new BranchSummaryResult(), parsers7, stdOut); +} +var parsers7; +var init_parse_branch = __esm({ + "src/lib/parsers/parse-branch.ts"() { + init_BranchSummary(); + init_utils(); + parsers7 = [ + new LineParser(/^(\*\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => { + result.push(!!current, true, name, commit, label); + }), + new LineParser(/^(\*\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit, label]) => { + result.push(!!current, false, name, commit, label); + }) + ]; + } +}); +var branch_exports = {}; +__export2(branch_exports, { + branchLocalTask: () => branchLocalTask, + branchTask: () => branchTask, + containsDeleteBranchCommand: () => containsDeleteBranchCommand, + deleteBranchTask: () => deleteBranchTask, + deleteBranchesTask: () => deleteBranchesTask +}); +function containsDeleteBranchCommand(commands) { + const deleteCommands = ["-d", "-D", "--delete"]; + return commands.some((command) => deleteCommands.includes(command)); +} +function branchTask(customArgs) { + const isDelete = containsDeleteBranchCommand(customArgs); + const commands = ["branch", ...customArgs]; + if (commands.length === 1) { + commands.push("-a"); + } + if (!commands.includes("-v")) { + commands.splice(1, 0, "-v"); + } + return { + format: "utf-8", + commands, + parser(stdOut, stdErr) { + if (isDelete) { + return parseBranchDeletions(stdOut, stdErr).all[0]; + } + return parseBranchSummary(stdOut); + } + }; +} +function branchLocalTask() { + const parser3 = parseBranchSummary; + return { + format: "utf-8", + commands: ["branch", "-v"], + parser: parser3 + }; +} +function deleteBranchesTask(branches, forceDelete = false) { + return { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr); + }, + onError({ exitCode, stdOut }, error, done, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + done(stdOut); + } + }; +} +function deleteBranchTask(branch, forceDelete = false) { + const task = { + format: "utf-8", + commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], + parser(stdOut, stdErr) { + return parseBranchDeletions(stdOut, stdErr).branches[branch]; + }, + onError({ exitCode, stdErr, stdOut }, error, _, fail) { + if (!hasBranchDeletionError(String(error), exitCode)) { + return fail(error); + } + throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error)); + } + }; + return task; +} +var init_branch = __esm({ + "src/lib/tasks/branch.ts"() { + init_git_response_error(); + init_parse_branch_delete(); + init_parse_branch(); + init_utils(); + } +}); +var parseCheckIgnore; +var init_CheckIgnore = __esm({ + "src/lib/responses/CheckIgnore.ts"() { + parseCheckIgnore = (text2) => { + return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); + }; + } +}); +var check_ignore_exports = {}; +__export2(check_ignore_exports, { + checkIgnoreTask: () => checkIgnoreTask +}); +function checkIgnoreTask(paths) { + return { + commands: ["check-ignore", ...paths], + format: "utf-8", + parser: parseCheckIgnore + }; +} +var init_check_ignore = __esm({ + "src/lib/tasks/check-ignore.ts"() { + init_CheckIgnore(); + } +}); +var clone_exports = {}; +__export2(clone_exports, { + cloneMirrorTask: () => cloneMirrorTask, + cloneTask: () => cloneTask +}); +function cloneTask(repo, directory, customArgs) { + const commands = ["clone", ...customArgs]; + if (typeof repo === "string") { + commands.push(repo); + } + if (typeof directory === "string") { + commands.push(directory); + } + return straightThroughStringTask(commands); +} +function cloneMirrorTask(repo, directory, customArgs) { + append(customArgs, "--mirror"); + return cloneTask(repo, directory, customArgs); +} +var init_clone = __esm({ + "src/lib/tasks/clone.ts"() { + init_task(); + init_utils(); + } +}); +function parseCommitResult(stdOut) { + const result = { + author: null, + branch: "", + commit: "", + root: false, + summary: { + changes: 0, + insertions: 0, + deletions: 0 + } + }; + return parseStringResponse(result, parsers8, stdOut); +} +var parsers8; +var init_parse_commit = __esm({ + "src/lib/parsers/parse-commit.ts"() { + init_utils(); + parsers8 = [ + new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { + result.branch = branch; + result.commit = commit; + result.root = !!root; + }), + new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => { + const parts = author.split("<"); + const email = parts.pop(); + if (!email || !email.includes("@")) { + return; + } + result.author = { + email: email.substr(0, email.length - 1), + name: parts.join("<").trim() + }; + }), + new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => { + result.summary.changes = parseInt(changes, 10) || 0; + result.summary.insertions = parseInt(insertions, 10) || 0; + result.summary.deletions = parseInt(deletions, 10) || 0; + }), + new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => { + result.summary.changes = parseInt(changes, 10) || 0; + const count = parseInt(lines, 10) || 0; + if (direction === "-") { + result.summary.deletions = count; + } else if (direction === "+") { + result.summary.insertions = count; + } + }) + ]; + } +}); +var commit_exports = {}; +__export2(commit_exports, { + commitTask: () => commitTask +}); +function commitTask(message, files, customArgs) { + const commands = ["commit"]; + message.forEach((m) => commands.push("-m", m)); + commands.push(...files, ...customArgs); + return { + commands, + format: "utf-8", + parser: parseCommitResult + }; +} +var init_commit = __esm({ + "src/lib/tasks/commit.ts"() { + init_parse_commit(); + } +}); +var diff_exports = {}; +__export2(diff_exports, { + diffSummaryTask: () => diffSummaryTask +}); +function diffSummaryTask(customArgs) { + return { + commands: ["diff", "--stat=4096", ...customArgs], + format: "utf-8", + parser(stdOut) { + return parseDiffResult(stdOut); + } + }; +} +var init_diff = __esm({ + "src/lib/tasks/diff.ts"() { + init_parse_diff_summary(); + } +}); +function parseFetchResult(stdOut, stdErr) { + const result = { + raw: stdOut, + remote: null, + branches: [], + tags: [] + }; + return parseStringResponse(result, parsers9, stdOut, stdErr); +} +var parsers9; +var init_parse_fetch = __esm({ + "src/lib/parsers/parse-fetch.ts"() { + init_utils(); + parsers9 = [ + new LineParser(/From (.+)$/, (result, [remote]) => { + result.remote = remote; + }), + new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.branches.push({ + name, + tracking + }); + }), + new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { + result.tags.push({ + name, + tracking + }); + }) + ]; + } +}); +var fetch_exports = {}; +__export2(fetch_exports, { + fetchTask: () => fetchTask +}); +function disallowedCommand(command) { + return /^--upload-pack(=|$)/.test(command); +} +function fetchTask(remote, branch, customArgs) { + const commands = ["fetch", ...customArgs]; + if (remote && branch) { + commands.push(remote, branch); + } + const banned = commands.find(disallowedCommand); + if (banned) { + return configurationErrorTask(`git.fetch: potential exploit argument blocked.`); + } + return { + commands, + format: "utf-8", + parser: parseFetchResult + }; +} +var init_fetch = __esm({ + "src/lib/tasks/fetch.ts"() { + init_parse_fetch(); + init_task(); + } +}); +function parseMoveResult(stdOut) { + return parseStringResponse({ moves: [] }, parsers10, stdOut); +} +var parsers10; +var init_parse_move = __esm({ + "src/lib/parsers/parse-move.ts"() { + init_utils(); + parsers10 = [ + new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { + result.moves.push({ from, to }); + }) + ]; + } +}); +var move_exports = {}; +__export2(move_exports, { + moveTask: () => moveTask +}); +function moveTask(from, to) { + return { + commands: ["mv", "-v", ...asArray(from), to], + format: "utf-8", + parser: parseMoveResult + }; +} +var init_move = __esm({ + "src/lib/tasks/move.ts"() { + init_parse_move(); + init_utils(); + } +}); +var pull_exports = {}; +__export2(pull_exports, { + pullTask: () => pullTask +}); +function pullTask(remote, branch, customArgs) { + const commands = ["pull", ...customArgs]; + if (remote && branch) { + commands.splice(1, 0, remote, branch); + } + return { + commands, + format: "utf-8", + parser(stdOut, stdErr) { + return parsePullResult(stdOut, stdErr); + }, + onError(result, _error, _done, fail) { + const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr)); + if (pullError) { + return fail(new GitResponseError(pullError)); + } + fail(_error); + } + }; +} +var init_pull = __esm({ + "src/lib/tasks/pull.ts"() { + init_git_response_error(); + init_parse_pull(); + init_utils(); + } +}); +function parseGetRemotes(text2) { + const remotes = {}; + forEach(text2, ([name]) => remotes[name] = { name }); + return Object.values(remotes); +} +function parseGetRemotesVerbose(text2) { + const remotes = {}; + forEach(text2, ([name, url, purpose]) => { + if (!remotes.hasOwnProperty(name)) { + remotes[name] = { + name, + refs: { fetch: "", push: "" } + }; + } + if (purpose && url) { + remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url; + } + }); + return Object.values(remotes); +} +function forEach(text2, handler) { + forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); +} +var init_GetRemoteSummary = __esm({ + "src/lib/responses/GetRemoteSummary.ts"() { + init_utils(); + } +}); +var remote_exports = {}; +__export2(remote_exports, { + addRemoteTask: () => addRemoteTask, + getRemotesTask: () => getRemotesTask, + listRemotesTask: () => listRemotesTask, + remoteTask: () => remoteTask, + removeRemoteTask: () => removeRemoteTask +}); +function addRemoteTask(remoteName, remoteRepo, customArgs = []) { + return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); +} +function getRemotesTask(verbose) { + const commands = ["remote"]; + if (verbose) { + commands.push("-v"); + } + return { + commands, + format: "utf-8", + parser: verbose ? parseGetRemotesVerbose : parseGetRemotes + }; +} +function listRemotesTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== "ls-remote") { + commands.unshift("ls-remote"); + } + return straightThroughStringTask(commands); +} +function remoteTask(customArgs = []) { + const commands = [...customArgs]; + if (commands[0] !== "remote") { + commands.unshift("remote"); + } + return straightThroughStringTask(commands); +} +function removeRemoteTask(remoteName) { + return straightThroughStringTask(["remote", "remove", remoteName]); +} +var init_remote = __esm({ + "src/lib/tasks/remote.ts"() { + init_GetRemoteSummary(); + init_task(); + } +}); +var stash_list_exports = {}; +__export2(stash_list_exports, { + stashListTask: () => stashListTask +}); +function stashListTask(opt = {}, customArgs) { + const options = parseLogOptions(opt); + const parser3 = createListLogSummaryParser(options.splitter, options.fields); + return { + commands: ["stash", "list", ...options.commands, ...customArgs], + format: "utf-8", + parser: parser3 + }; +} +var init_stash_list = __esm({ + "src/lib/tasks/stash-list.ts"() { + init_parse_list_log_summary(); + init_log(); + } +}); +var sub_module_exports = {}; +__export2(sub_module_exports, { + addSubModuleTask: () => addSubModuleTask, + initSubModuleTask: () => initSubModuleTask, + subModuleTask: () => subModuleTask, + updateSubModuleTask: () => updateSubModuleTask +}); +function addSubModuleTask(repo, path3) { + return subModuleTask(["add", repo, path3]); +} +function initSubModuleTask(customArgs) { + return subModuleTask(["init", ...customArgs]); +} +function subModuleTask(customArgs) { + const commands = [...customArgs]; + if (commands[0] !== "submodule") { + commands.unshift("submodule"); + } + return straightThroughStringTask(commands); +} +function updateSubModuleTask(customArgs) { + return subModuleTask(["update", ...customArgs]); +} +var init_sub_module = __esm({ + "src/lib/tasks/sub-module.ts"() { + init_task(); + } +}); +function singleSorted(a, b) { + const aIsNum = isNaN(a); + const bIsNum = isNaN(b); + if (aIsNum !== bIsNum) { + return aIsNum ? 1 : -1; + } + return aIsNum ? sorted(a, b) : 0; +} +function sorted(a, b) { + return a === b ? 0 : a > b ? 1 : -1; +} +function trimmed(input) { + return input.trim(); +} +function toNumber(input) { + if (typeof input === "string") { + return parseInt(input.replace(/^\D+/g, ""), 10) || 0; + } + return 0; +} +var TagList; +var parseTagList; +var init_TagList = __esm({ + "src/lib/responses/TagList.ts"() { + TagList = class { + constructor(all, latest) { + this.all = all; + this.latest = latest; + } + }; + parseTagList = function(data, customSort = false) { + const tags = data.split("\n").map(trimmed).filter(Boolean); + if (!customSort) { + tags.sort(function(tagA, tagB) { + const partsA = tagA.split("."); + const partsB = tagB.split("."); + if (partsA.length === 1 || partsB.length === 1) { + return singleSorted(toNumber(partsA[0]), toNumber(partsB[0])); + } + for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) { + const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i])); + if (diff) { + return diff; + } + } + return 0; + }); + } + const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0); + return new TagList(tags, latest); + }; + } +}); +var tag_exports = {}; +__export2(tag_exports, { + addAnnotatedTagTask: () => addAnnotatedTagTask, + addTagTask: () => addTagTask, + tagListTask: () => tagListTask +}); +function tagListTask(customArgs = []) { + const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); + return { + format: "utf-8", + commands: ["tag", "-l", ...customArgs], + parser(text2) { + return parseTagList(text2, hasCustomSort); + } + }; +} +function addTagTask(name) { + return { + format: "utf-8", + commands: ["tag", name], + parser() { + return { name }; + } + }; +} +function addAnnotatedTagTask(name, tagMessage) { + return { + format: "utf-8", + commands: ["tag", "-a", "-m", tagMessage, name], + parser() { + return { name }; + } + }; +} +var init_tag = __esm({ + "src/lib/tasks/tag.ts"() { + init_TagList(); + } +}); +var require_git = __commonJS2({ + "src/git.js"(exports, module2) { + var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports)); + var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports)); + var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports)); + var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports)); + var { + asArray: asArray2, + filterArray: filterArray2, + filterPrimitives: filterPrimitives2, + filterString: filterString2, + filterStringOrStringArray: filterStringOrStringArray2, + filterType: filterType2, + getTrailingOptions: getTrailingOptions2, + trailingFunctionArgument: trailingFunctionArgument2, + trailingOptionsArgument: trailingOptionsArgument2 + } = (init_utils(), __toCommonJS(utils_exports)); + var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports)); + var { branchTask: branchTask2, branchLocalTask: branchLocalTask2, deleteBranchesTask: deleteBranchesTask2, deleteBranchTask: deleteBranchTask2 } = (init_branch(), __toCommonJS(branch_exports)); + var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports)); + var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports)); + var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports)); + var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports)); + var { commitTask: commitTask2 } = (init_commit(), __toCommonJS(commit_exports)); + var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports)); + var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports)); + var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports)); + var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports)); + var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports)); + var { addRemoteTask: addRemoteTask2, getRemotesTask: getRemotesTask2, listRemotesTask: listRemotesTask2, remoteTask: remoteTask2, removeRemoteTask: removeRemoteTask2 } = (init_remote(), __toCommonJS(remote_exports)); + var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports)); + var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports)); + var { addSubModuleTask: addSubModuleTask2, initSubModuleTask: initSubModuleTask2, subModuleTask: subModuleTask2, updateSubModuleTask: updateSubModuleTask2 } = (init_sub_module(), __toCommonJS(sub_module_exports)); + var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports)); + var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports)); + function Git2(options, plugins) { + this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins); + } + (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2; + Git2.prototype.customBinary = function(command) { + this._executor.binary = command; + return this; + }; + Git2.prototype.env = function(name, value) { + if (arguments.length === 1 && typeof name === "object") { + this._executor.env = name; + } else { + (this._executor.env = this._executor.env || {})[name] = value; + } + return this; + }; + Git2.prototype.stashList = function(options) { + return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments)); + }; + function createCloneTask(api, task, repoPath, localPath) { + if (typeof repoPath !== "string") { + return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`); + } + return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments)); + } + Git2.prototype.clone = function() { + return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mirror = function() { + return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.mv = function(from, to) { + return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLatestTag = function(then) { + var git = this; + return this.pull(function() { + git.tags(function(err, tags) { + git.checkout(tags.latest, then); + }); + }); + }; + Git2.prototype.commit = function(message, files, options, then) { + const next = trailingFunctionArgument2(arguments); + if (!filterStringOrStringArray2(message)) { + return this._runTask(configurationErrorTask2("git.commit: requires the commit message to be supplied as a string/string[]"), next); + } + return this._runTask(commitTask2(asArray2(message), asArray2(filterType2(files, filterStringOrStringArray2, [])), [...filterType2(options, filterArray2, []), ...getTrailingOptions2(arguments, 0, true)]), next); + }; + Git2.prototype.pull = function(remote, branch, options, then) { + return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.fetch = function(remote, branch) { + return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.silent = function(silence) { + console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3"); + return this; + }; + Git2.prototype.tags = function(options, then) { + return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rebase = function() { + return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.reset = function(mode) { + return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revert = function(commit) { + const next = trailingFunctionArgument2(arguments); + if (typeof commit !== "string") { + return this._runTask(configurationErrorTask2("Commit must be a string"), next); + } + return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next); + }; + Git2.prototype.addTag = function(name) { + const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name"); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) { + return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkout = function() { + const commands = ["checkout", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutBranch = function(branchName, startPoint, then) { + return this.checkout(["-b", branchName, startPoint], trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkoutLocalBranch = function(branchName, then) { + return this.checkout(["-b", branchName], trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { + return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { + return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branch = function(options, then) { + return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.branchLocal = function(then) { + return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.raw = function(commands) { + const createRestCommands = !Array.isArray(commands); + const command = [].slice.call(createRestCommands ? arguments : commands, 0); + for (let i = 0; i < command.length && createRestCommands; i++) { + if (!filterPrimitives2(command[i])) { + command.splice(i, command.length - i); + break; + } + } + command.push(...getTrailingOptions2(arguments, 0, true)); + var next = trailingFunctionArgument2(arguments); + if (!command.length) { + return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next); + } + return this._runTask(straightThroughStringTask2(command), next); + }; + Git2.prototype.submoduleAdd = function(repo, path3, then) { + return this._runTask(addSubModuleTask2(repo, path3), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleUpdate = function(args, then) { + return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.submoduleInit = function(args, then) { + return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.subModule = function(options, then) { + return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.listRemote = function() { + return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.addRemote = function(remoteName, remoteRepo, then) { + return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.removeRemote = function(remoteName, then) { + return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.getRemotes = function(verbose, then) { + return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.remote = function(options, then) { + return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.tag = function(options, then) { + const command = getTrailingOptions2(arguments); + if (command[0] !== "tag") { + command.unshift("tag"); + } + return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.updateServerInfo = function(then) { + return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.pushTags = function(remote, then) { + const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments)); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rm = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.rmKeepLocal = function(files) { + return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.catFile = function(options, then) { + return this._catFile("utf-8", arguments); + }; + Git2.prototype.binaryCatFile = function() { + return this._catFile("buffer", arguments); + }; + Git2.prototype._catFile = function(format, args) { + var handler = trailingFunctionArgument2(args); + var command = ["cat-file"]; + var options = args[0]; + if (typeof options === "string") { + return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler); + } + if (Array.isArray(options)) { + command.push.apply(command, options); + } + const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command); + return this._runTask(task, handler); + }; + Git2.prototype.diff = function(options, then) { + const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.diffSummary = function() { + return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.applyPatch = function(patches) { + const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1))); + return this._runTask(task, trailingFunctionArgument2(arguments)); + }; + Git2.prototype.revparse = function() { + const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)]; + return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.show = function(options, then) { + return this._runTask(straightThroughStringTask2(["show", ...getTrailingOptions2(arguments, 1)]), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.clean = function(mode, options, then) { + const usingCleanOptionsArray = isCleanOptionsArray2(mode); + const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || ""; + const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); + return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.exec = function(then) { + const task = { + commands: [], + format: "utf-8", + parser() { + if (typeof then === "function") { + then(); + } + } + }; + return this._runTask(task); + }; + Git2.prototype.clearQueue = function() { + return this; + }; + Git2.prototype.checkIgnore = function(pathnames, then) { + return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments)); + }; + Git2.prototype.checkIsRepo = function(checkType, then) { + return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments)); + }; + module2.exports = Git2; + } +}); +init_git_error(); +var GitConstructError = class extends GitError { + constructor(config, message) { + super(void 0, message); + this.config = config; + } +}; +init_git_error(); +init_git_error(); +var GitPluginError = class extends GitError { + constructor(task, plugin, message) { + super(task, message); + this.task = task; + this.plugin = plugin; + Object.setPrototypeOf(this, new.target.prototype); + } +}; +init_git_response_error(); +init_task_configuration_error(); +init_check_is_repo(); +init_clean(); +init_config(); +init_grep(); +init_reset(); +init_utils(); +function commandConfigPrefixingPlugin(configuration) { + const prefix = prefixedArray(configuration, "-c"); + return { + type: "spawn.args", + action(data) { + return [...prefix, ...data]; + } + }; +} +init_utils(); +var never = (0, import_promise_deferred2.deferred)().promise; +function completionDetectionPlugin({ + onClose = true, + onExit = 50 +} = {}) { + function createEvents() { + let exitCode = -1; + const events = { + close: (0, import_promise_deferred2.deferred)(), + closeTimeout: (0, import_promise_deferred2.deferred)(), + exit: (0, import_promise_deferred2.deferred)(), + exitTimeout: (0, import_promise_deferred2.deferred)() + }; + const result = Promise.race([ + onClose === false ? never : events.closeTimeout.promise, + onExit === false ? never : events.exitTimeout.promise + ]); + configureTimeout(onClose, events.close, events.closeTimeout); + configureTimeout(onExit, events.exit, events.exitTimeout); + return { + close(code) { + exitCode = code; + events.close.done(); + }, + exit(code) { + exitCode = code; + events.exit.done(); + }, + get exitCode() { + return exitCode; + }, + result + }; + } + function configureTimeout(flag, event, timeout) { + if (flag === false) { + return; + } + (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done); + } + return { + type: "spawn.after", + action(_0, _1) { + return __async2(this, arguments, function* (_data, { spawned, close }) { + var _a2, _b; + const events = createEvents(); + let deferClose = true; + let quickClose = () => void (deferClose = false); + (_a2 = spawned.stdout) == null ? void 0 : _a2.on("data", quickClose); + (_b = spawned.stderr) == null ? void 0 : _b.on("data", quickClose); + spawned.on("error", quickClose); + spawned.on("close", (code) => events.close(code)); + spawned.on("exit", (code) => events.exit(code)); + try { + yield events.result; + if (deferClose) { + yield delay(50); + } + close(events.exitCode); + } catch (err) { + close(events.exitCode, err); + } + }); + } + }; +} +init_git_error(); +function isTaskError(result) { + return !!(result.exitCode && result.stdErr.length); +} +function getErrorMessage(result) { + return Buffer.concat([...result.stdOut, ...result.stdErr]); +} +function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) { + return (error, result) => { + if (!overwrite && error || !isError(result)) { + return error; + } + return errorMessage(result); + }; +} +function errorDetectionPlugin(config) { + return { + type: "task.error", + action(data, context) { + const error = config(data.error, { + stdErr: context.stdErr, + stdOut: context.stdOut, + exitCode: context.exitCode + }); + if (Buffer.isBuffer(error)) { + return { error: new GitError(void 0, error.toString("utf-8")) }; + } + return { + error + }; + } + }; +} +init_utils(); +var PluginStore = class { + constructor() { + this.plugins = /* @__PURE__ */ new Set(); + } + add(plugin) { + const plugins = []; + asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2))); + return () => { + plugins.forEach((plugin2) => this.plugins.delete(plugin2)); + }; + } + exec(type, data, context) { + let output = data; + const contextual = Object.freeze(Object.create(context)); + for (const plugin of this.plugins) { + if (plugin.type === type) { + output = plugin.action(output, contextual); + } + } + return output; + } +}; +init_utils(); +function progressMonitorPlugin(progress) { + const progressCommand = "--progress"; + const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; + const onProgress = { + type: "spawn.after", + action(_data, context) { + var _a2; + if (!context.commands.includes(progressCommand)) { + return; + } + (_a2 = context.spawned.stderr) == null ? void 0 : _a2.on("data", (chunk) => { + const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8")); + if (!message) { + return; + } + progress({ + method: context.method, + stage: progressEventStage(message[1]), + progress: asNumber(message[2]), + processed: asNumber(message[3]), + total: asNumber(message[4]) + }); + }); + } + }; + const onArgs = { + type: "spawn.args", + action(args, context) { + if (!progressMethods.includes(context.method)) { + return args; + } + return including(args, progressCommand); + } + }; + return [onArgs, onProgress]; +} +function progressEventStage(input) { + return String(input.toLowerCase().split(" ", 1)) || "unknown"; +} +init_utils(); +function spawnOptionsPlugin(spawnOptions) { + const options = pick(spawnOptions, ["uid", "gid"]); + return { + type: "spawn.options", + action(data) { + return __spreadValues2(__spreadValues2({}, options), data); + } + }; +} +function timeoutPlugin({ block }) { + if (block > 0) { + return { + type: "spawn.after", + action(_data, context) { + var _a2, _b; + let timeout; + function wait3() { + timeout && clearTimeout(timeout); + timeout = setTimeout(kill, block); + } + function stop() { + var _a3, _b2; + (_a3 = context.spawned.stdout) == null ? void 0 : _a3.off("data", wait3); + (_b2 = context.spawned.stderr) == null ? void 0 : _b2.off("data", wait3); + context.spawned.off("exit", stop); + context.spawned.off("close", stop); + } + function kill() { + stop(); + context.kill(new GitPluginError(void 0, "timeout", `block timeout reached`)); + } + (_a2 = context.spawned.stdout) == null ? void 0 : _a2.on("data", wait3); + (_b = context.spawned.stderr) == null ? void 0 : _b.on("data", wait3); + context.spawned.on("exit", stop); + context.spawned.on("close", stop); + wait3(); + } + }; + } +} +init_utils(); +var Git = require_git(); +function gitInstanceFactory(baseDir, options) { + const plugins = new PluginStore(); + const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); + if (!folderExists(config.baseDir)) { + throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); + } + if (Array.isArray(config.config)) { + plugins.add(commandConfigPrefixingPlugin(config.config)); + } + plugins.add(completionDetectionPlugin(config.completion)); + config.progress && plugins.add(progressMonitorPlugin(config.progress)); + config.timeout && plugins.add(timeoutPlugin(config.timeout)); + config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions)); + plugins.add(errorDetectionPlugin(errorDetectionHandler(true))); + config.errors && plugins.add(errorDetectionPlugin(config.errors)); + return new Git(config, plugins); +} +init_git_response_error(); +var esm_default = gitInstanceFactory; + +// src/gitManager.ts +var GitManager = class { + constructor(plugin) { + this.plugin = plugin; + this.app = plugin.app; + } + getTreeStructure(children2, beginLength = 0) { + let list = []; + children2 = [...children2]; + while (children2.length > 0) { + const first2 = children2.first(); + const restPath = first2.path.substring(beginLength); + if (restPath.contains("/")) { + const title = restPath.substring(0, restPath.indexOf("/")); + const childrenWithSameTitle = children2.filter((item) => { + return item.path.substring(beginLength).startsWith(title + "/"); + }); + childrenWithSameTitle.forEach((item) => children2.remove(item)); + list.push({ + title, + children: this.getTreeStructure(childrenWithSameTitle, (beginLength > 0 ? beginLength + title.length : title.length) + 1) + }); + } else { + list.push({ title: restPath, statusResult: first2 }); + children2.remove(first2); + } + } + return list; + } + formatCommitMessage(template) { + return __async(this, null, function* () { + let status; + if (template.includes("{{numFiles}}")) { + status = yield this.status(); + let numFiles = status.staged.length; + template = template.replace("{{numFiles}}", String(numFiles)); + } + if (template.includes("{{hostname}}")) { + const hostname = localStorage.getItem(this.plugin.manifest.id + ":hostname") || ""; + template = template.replace("{{hostname}}", hostname); + } + if (template.includes("{{files}}")) { + status = status != null ? status : yield this.status(); + let changeset = {}; + status.staged.forEach((value) => { + if (value.index in changeset) { + changeset[value.index].push(value.path); + } else { + changeset[value.index] = [value.path]; + } + }); + let chunks = []; + for (let [action, files2] of Object.entries(changeset)) { + chunks.push(action + " " + files2.join(" ")); + } + let files = chunks.join(", "); + template = template.replace("{{files}}", files); + } + let moment = window.moment; + template = template.replace("{{date}}", moment().format(this.plugin.settings.commitDateFormat)); + if (this.plugin.settings.listChangedFilesInMessageBody) { + template = template + "\n\nAffected files:\n" + (status != null ? status : yield this.status()).staged.map((e) => e.path).join("\n"); + } + return template; + }); + } +}; + +// src/simpleGit.ts +var SimpleGit = class extends GitManager { + constructor(plugin) { + super(plugin); + this.setGitInstance(); + } + setGitInstance() { + return __async(this, null, function* () { + if (this.isGitInstalled()) { + const adapter = this.app.vault.adapter; + const path3 = adapter.getBasePath(); + this.git = esm_default({ + baseDir: path3, + binary: this.plugin.settings.gitPath || void 0, + config: ["core.quotepath=off"] + }); + this.git.cwd(yield this.git.revparse("--show-toplevel")); + } + }); + } + status() { + return __async(this, null, function* () { + this.plugin.setState(PluginState.status); + const status = yield this.git.status((err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + return { + changed: status.files.filter((e) => e.working_dir !== " ").map((e) => { + const res = this.formatPath(e.path); + e.path = res.path; + e.from = res.from; + e.working_dir = e.working_dir === "?" ? "U" : e.working_dir; + return e; + }), + staged: status.files.filter((e) => e.index !== " " && e.index != "?").map((e) => { + const res = this.formatPath(e.path, e.index === "R"); + e.path = res.path; + e.from = res.from; + return e; + }), + conflicted: status.conflicted.map((e) => this.formatPath(e).path) + }; + }); + } + formatPath(path3, renamed = false) { + function format(path4) { + if (path4.startsWith('"') && path4.endsWith('"')) { + return path4.substring(1, path4.length - 1); + } else { + return path4; + } + } + if (renamed) { + const paths = path3.split(" -> ").map((e) => format(e)); + return { + from: paths[0], + path: paths[1] + }; + } else { + return { + path: format(path3) + }; + } + } + commitAll(message) { + return __async(this, null, function* () { + if (this.plugin.settings.updateSubmodules) { + this.plugin.setState(PluginState.commit); + yield this.git.subModule(["foreach", "--recursive", `git add -A && if [ ! -z "$(git status --porcelain)" ]; then git commit -m "${yield this.formatCommitMessage(message)}"; fi`], (err) => this.onError(err)); + } + this.plugin.setState(PluginState.add); + yield this.git.add("-A", (err) => this.onError(err)); + this.plugin.setState(PluginState.commit); + return (yield this.git.commit(yield this.formatCommitMessage(message), (err) => this.onError(err))).summary.changes; + }); + } + commit(message) { + return __async(this, null, function* () { + this.plugin.setState(PluginState.commit); + const res = (yield this.git.commit(yield this.formatCommitMessage(message), (err) => this.onError(err))).summary.changes; + this.plugin.setState(PluginState.idle); + return res; + }); + } + stage(filepath) { + return __async(this, null, function* () { + this.plugin.setState(PluginState.add); + yield this.git.add(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + }); + } + stageAll() { + return __async(this, null, function* () { + this.plugin.setState(PluginState.add); + yield this.git.add("-A", (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + }); + } + unstageAll() { + return __async(this, null, function* () { + this.plugin.setState(PluginState.add); + yield this.git.reset([], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + }); + } + unstage(filepath) { + return __async(this, null, function* () { + this.plugin.setState(PluginState.add); + yield this.git.reset(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + }); + } + discard(filepath) { + return __async(this, null, function* () { + this.plugin.setState(PluginState.add); + yield this.git.checkout(["--", filepath], (err) => this.onError(err)); + this.plugin.setState(PluginState.idle); + }); + } + pull() { + return __async(this, null, function* () { + this.plugin.setState(PluginState.pull); + if (this.plugin.settings.updateSubmodules) + yield this.git.subModule(["update", "--remote", "--merge", "--recursive"], (err) => this.onError(err)); + const branchInfo = yield this.branchInfo(); + const localCommit = yield this.git.revparse([branchInfo.tracking], (err) => this.onError(err)); + yield this.git.fetch((err) => this.onError(err)); + const upstreamCommit = yield this.git.revparse([branchInfo.tracking], (err) => this.onError(err)); + if (localCommit !== upstreamCommit) { + if (this.plugin.settings.syncMethod === "merge" || this.plugin.settings.syncMethod === "rebase") { + try { + switch (this.plugin.settings.syncMethod) { + case "merge": + yield this.git.merge([branchInfo.tracking]); + break; + case "rebase": + yield this.git.rebase([branchInfo.tracking]); + } + } catch (err) { + this.plugin.displayError(`Pull failed (${this.plugin.settings.syncMethod}): ${err.message}`); + const status = yield this.status(); + if (status.conflicted.length > 0) { + this.plugin.handleConflict(status.conflicted); + } + return; + } + } else if (this.plugin.settings.syncMethod === "reset") { + try { + yield this.git.raw(["update-ref", `refs/heads/${branchInfo.current}`, upstreamCommit], (err) => this.onError(err)); + yield this.unstageAll(); + } catch (err) { + this.plugin.displayError(`Sync failed (${this.plugin.settings.syncMethod}): ${err.message}`); + } + } + const filesChanged = yield this.git.diff([`${localCommit}..${upstreamCommit}`, "--name-only"]); + return filesChanged.split(/\r\n|\r|\n/).filter((value) => value.length > 0).length; + } else { + return 0; + } + }); + } + push() { + return __async(this, null, function* () { + this.plugin.setState(PluginState.status); + const status = yield this.git.status(); + const trackingBranch = status.tracking; + const currentBranch = status.current; + const remoteChangedFiles = (yield this.git.diffSummary([currentBranch, trackingBranch])).changed; + this.plugin.setState(PluginState.push); + if (this.plugin.settings.updateSubmodules) { + yield this.git.env(__spreadProps(__spreadValues({}, process.env), { "OBSIDIAN_GIT": 1 })).subModule(["foreach", "--recursive", `tracking=$(git for-each-ref --format='%(upstream:short)' "$(git symbolic-ref -q HEAD)"); echo $tracking; if [ ! -z "$(git diff --shortstat $tracking)" ]; then git push; fi`], (err) => this.onError(err)); + } + yield this.git.env(__spreadProps(__spreadValues({}, process.env), { "OBSIDIAN_GIT": 1 })).push((err) => this.onError(err)); + return remoteChangedFiles; + }); + } + canPush() { + return __async(this, null, function* () { + if (this.plugin.settings.updateSubmodules === true) { + return true; + } + const status = yield this.git.status((err) => this.onError(err)); + const trackingBranch = status.tracking; + const currentBranch = status.current; + const remoteChangedFiles = (yield this.git.diffSummary([currentBranch, trackingBranch])).changed; + return remoteChangedFiles !== 0; + }); + } + checkRequirements() { + return __async(this, null, function* () { + if (!this.isGitInstalled()) { + return "missing-git"; + } + if (!(yield this.git.checkIsRepo())) { + return "missing-repo"; + } + return "valid"; + }); + } + branchInfo() { + return __async(this, null, function* () { + const status = yield this.git.status((err) => this.onError(err)); + const branches = yield this.git.branch(["--no-color"], (err) => this.onError(err)); + return { + current: status.current, + tracking: status.tracking, + branches: branches.all + }; + }); + } + log(file) { + return __async(this, null, function* () { + const res = yield this.git.log({ file }, (err) => this.onError(err)); + return res.all; + }); + } + show(commitHash, file) { + return __async(this, null, function* () { + return this.git.show([commitHash + ":" + file], (err) => this.onError(err)); + }); + } + checkout(branch) { + return __async(this, null, function* () { + yield this.git.checkout(branch, (err) => this.onError(err)); + }); + } + init() { + return __async(this, null, function* () { + yield this.git.init(false, (err) => this.onError(err)); + }); + } + clone(url, dir) { + return __async(this, null, function* () { + yield this.git.clone(url, path.join(this.app.vault.adapter.getBasePath(), dir), [], (err) => this.onError(err)); + }); + } + setConfig(path3, value) { + return __async(this, null, function* () { + yield this.git.addConfig(path3, value, (err) => this.onError(err)); + }); + } + getConfig(path3) { + return __async(this, null, function* () { + const config = yield this.git.listConfig((err) => this.onError(err)); + return config.all[path3]; + }); + } + fetch(remote) { + return __async(this, null, function* () { + yield this.git.fetch(remote != void 0 ? [remote] : [], (err) => this.onError(err)); + }); + } + setRemote(name, url) { + return __async(this, null, function* () { + if ((yield this.getRemotes()).includes(name)) + yield this.git.remote(["set-url", name, url], (err) => this.onError(err)); + else { + yield this.git.remote(["add", name, url], (err) => this.onError(err)); + } + }); + } + getRemoteBranches(remote) { + return __async(this, null, function* () { + const res = yield this.git.branch(["-r", "--list", `${remote}*`], (err) => this.onError(err)); + const list = []; + for (var item in res.branches) { + list.push(res.branches[item].name); + } + return list; + }); + } + getRemotes() { + return __async(this, null, function* () { + const res = yield this.git.remote([], (err) => this.onError(err)); + if (res) { + return res.trim().split("\n"); + } else { + return []; + } + }); + } + removeRemote(remoteName) { + return __async(this, null, function* () { + yield this.git.removeRemote(remoteName); + }); + } + updateUpstreamBranch(remoteBranch) { + return __async(this, null, function* () { + yield this.git.push(["--set-upstream", ...remoteBranch.split("/")], (err) => this.onError(err)); + }); + } + updateGitPath(gitPath) { + this.setGitInstance(); + } + getDiffString(filePath, stagedChanges = false) { + return __async(this, null, function* () { + if (stagedChanges) + return yield this.git.diff(["--cached", "--", filePath]); + else + return yield this.git.diff(["--", filePath]); + }); + } + diff(file, commit1, commit2) { + return __async(this, null, function* () { + return yield this.git.diff([`${commit1}..${commit2}`, "--", file]); + }); + } + isGitInstalled() { + const command = (0, import_child_process2.spawnSync)(this.plugin.settings.gitPath || "git", ["--version"], { + stdio: "ignore" + }); + if (command.error) { + console.error(command.error); + return false; + } + return true; + } + onError(error) { + if (error) { + this.plugin.displayError(error.message); + this.plugin.setState(PluginState.idle); + } + } +}; + +// src/ui/diff/diffView.ts +var import_diff2html = __toModule(require_diff2html()); +var import_obsidian6 = __toModule(require("obsidian")); +var DiffView = class extends import_obsidian6.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.gettingDiff = false; + this.parser = new DOMParser(); + addEventListener("git-refresh", this.refresh.bind(this)); + } + getViewType() { + return DIFF_VIEW_CONFIG.type; + } + getDisplayText() { + return DIFF_VIEW_CONFIG.name; + } + getIcon() { + return DIFF_VIEW_CONFIG.icon; + } + setState(state, result) { + return __async(this, null, function* () { + this.state = state; + yield this.refresh(); + return; + }); + } + getState() { + return this.state; + } + onClose() { + removeEventListener("git-refresh", this.refresh.bind(this)); + return super.onClose(); + } + onOpen() { + this.refresh(); + return super.onOpen(); + } + refresh() { + return __async(this, null, function* () { + var _a2; + if (((_a2 = this.state) == null ? void 0 : _a2.file) && !this.gettingDiff && this.plugin.gitManager) { + this.gettingDiff = true; + const diff = this.parser.parseFromString((0, import_diff2html.html)(yield this.plugin.gitManager.getDiffString(this.state.file, this.state.staged)), "text/html").querySelector(".d2h-file-diff"); + this.contentEl.empty(); + if (diff) { + this.contentEl.append(diff); + } else { + const div = this.contentEl.createDiv({ cls: "diff-err" }); + div.createSpan({ text: "\u26A0\uFE0F", cls: "diff-err-sign" }); + div.createEl("br"); + div.createSpan({ text: "No changes to " + this.state.file }); + } + this.gettingDiff = false; + } + }); + } +}; + +// node_modules/obsidian-community-lib/dist/utils.js +var feather = __toModule(require_feather()); +var import_obsidian7 = __toModule(require("obsidian")); +function addFeatherIcon(name, attr2 = { viewBox: "0 0 24 24", width: "100", height: "100" }) { + if (feather.icons[name]) { + const iconName = `feather-${name}`; + (0, import_obsidian7.addIcon)(iconName, feather.icons[name].toSvg(attr2)); + return iconName; + } else { + throw Error(`This Icon (${name}) doesn't exist in the Feather Library.`); + } +} +function hoverPreview(event, view, to) { + const targetEl = event.target; + view.app.workspace.trigger("hover-link", { + event, + source: view.getViewType(), + hoverParent: view, + targetEl, + linktext: to + }); +} +function createNewMDNote(app, newName, currFilePath = "") { + return __async(this, null, function* () { + const newFileFolder = app.fileManager.getNewFileParent(currFilePath).path; + const newFilePath = (0, import_obsidian7.normalizePath)(`${newFileFolder}${newFileFolder === "/" ? "" : "/"}${addMD(newName)}`); + return yield app.vault.create(newFilePath, ""); + }); +} +var addMD = (noteName) => { + return noteName.endsWith(".md") ? noteName : noteName + ".md"; +}; +function openOrSwitch(_0, _1, _2) { + return __async(this, arguments, function* (app, dest, event, options = { createNewFile: true }) { + const { workspace } = app; + let destFile = app.metadataCache.getFirstLinkpathDest(dest, ""); + if (!destFile && options.createNewFile) { + destFile = yield createNewMDNote(app, dest); + } else if (!destFile && !options.createNewFile) + return; + const leavesWithDestAlreadyOpen = []; + workspace.iterateAllLeaves((leaf) => { + var _a2; + if (leaf.view instanceof import_obsidian7.MarkdownView) { + const file = (_a2 = leaf.view) === null || _a2 === void 0 ? void 0 : _a2.file; + if (file && file.basename + "." + file.extension === dest) { + leavesWithDestAlreadyOpen.push(leaf); + } + } + }); + if (leavesWithDestAlreadyOpen.length > 0) { + workspace.setActiveLeaf(leavesWithDestAlreadyOpen[0]); + } else { + const mode = app.vault.getConfig("defaultViewMode"); + const leaf = event.ctrlKey || event.getModifierState("Meta") ? workspace.splitActiveLeaf() : workspace.getUnpinnedLeaf(); + yield leaf.openFile(destFile, { active: true, mode }); + } + }); +} + +// src/ui/icons.ts +function addIcons() { + addFeatherIcon("git-pull-request"); + addFeatherIcon("check"); + addFeatherIcon("refresh-cw"); + addFeatherIcon("plus-circle"); + addFeatherIcon("minus-circle"); + addFeatherIcon("upload"); + addFeatherIcon("download"); + addFeatherIcon("plus"); + addFeatherIcon("skip-back"); + addFeatherIcon("minus"); + addFeatherIcon("alert-circle"); + addFeatherIcon("alert-triangle"); + addFeatherIcon("git-commit"); + addFeatherIcon("edit"); + addFeatherIcon("folder"); + addFeatherIcon("list"); +} + +// src/ui/modals/generalModal.ts +var import_obsidian8 = __toModule(require("obsidian")); +var GeneralModal = class extends import_obsidian8.SuggestModal { + constructor(app, remotes, placeholder) { + super(app); + this.resolve = null; + this.list = remotes; + this.setPlaceholder(placeholder); + } + open() { + super.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + selectSuggestion(value, evt) { + if (this.resolve) + this.resolve(value); + super.selectSuggestion(value, evt); + } + onClose() { + if (this.resolve) + this.resolve(void 0); + } + getSuggestions(query) { + return [query.length > 0 ? query : "...", ...this.list]; + } + renderSuggestion(value, el) { + el.innerText = value; + } + onChooseSuggestion(item, _) { + } +}; + +// src/ui/sidebar/sidebarView.ts +var import_obsidian13 = __toModule(require("obsidian")); + +// node_modules/svelte/internal/index.mjs +function noop() { +} +var identity = (x) => x; +function run(fn) { + return fn(); +} +function blank_object() { + return Object.create(null); +} +function run_all(fns) { + fns.forEach(run); +} +function is_function(thing) { + return typeof thing === "function"; +} +function safe_not_equal(a, b) { + return a != a ? b == b : a !== b || (a && typeof a === "object" || typeof a === "function"); +} +function is_empty(obj) { + return Object.keys(obj).length === 0; +} +var is_client = typeof window !== "undefined"; +var now = is_client ? () => window.performance.now() : () => Date.now(); +var raf = is_client ? (cb) => requestAnimationFrame(cb) : noop; +var tasks = new Set(); +function run_tasks(now2) { + tasks.forEach((task) => { + if (!task.c(now2)) { + tasks.delete(task); + task.f(); + } + }); + if (tasks.size !== 0) + raf(run_tasks); +} +function loop(callback) { + let task; + if (tasks.size === 0) + raf(run_tasks); + return { + promise: new Promise((fulfill) => { + tasks.add(task = { c: callback, f: fulfill }); + }), + abort() { + tasks.delete(task); + } + }; +} +var is_hydrating = false; +function start_hydrating() { + is_hydrating = true; +} +function end_hydrating() { + is_hydrating = false; +} +function append2(target, node) { + target.appendChild(node); +} +function append_styles(target, style_sheet_id, styles) { + const append_styles_to = get_root_for_style(target); + if (!append_styles_to.getElementById(style_sheet_id)) { + const style = element("style"); + style.id = style_sheet_id; + style.textContent = styles; + append_stylesheet(append_styles_to, style); + } +} +function get_root_for_style(node) { + if (!node) + return document; + const root = node.getRootNode ? node.getRootNode() : node.ownerDocument; + if (root && root.host) { + return root; + } + return node.ownerDocument; +} +function append_empty_stylesheet(node) { + const style_element = element("style"); + append_stylesheet(get_root_for_style(node), style_element); + return style_element.sheet; +} +function append_stylesheet(node, style) { + append2(node.head || node, style); +} +function insert(target, node, anchor) { + target.insertBefore(node, anchor || null); +} +function detach(node) { + node.parentNode.removeChild(node); +} +function destroy_each(iterations, detaching) { + for (let i = 0; i < iterations.length; i += 1) { + if (iterations[i]) + iterations[i].d(detaching); + } +} +function element(name) { + return document.createElement(name); +} +function text(data) { + return document.createTextNode(data); +} +function space() { + return text(" "); +} +function empty() { + return text(""); +} +function listen(node, event, handler, options) { + node.addEventListener(event, handler, options); + return () => node.removeEventListener(event, handler, options); +} +function self2(fn) { + return function(event) { + if (event.target === this) + fn.call(this, event); + }; +} +function attr(node, attribute, value) { + if (value == null) + node.removeAttribute(attribute); + else if (node.getAttribute(attribute) !== value) + node.setAttribute(attribute, value); +} +function children(element2) { + return Array.from(element2.childNodes); +} +function set_data(text2, data) { + data = "" + data; + if (text2.wholeText !== data) + text2.data = data; +} +function set_input_value(input, value) { + input.value = value == null ? "" : value; +} +function toggle_class(element2, name, toggle) { + element2.classList[toggle ? "add" : "remove"](name); +} +function custom_event(type, detail, bubbles = false) { + const e = document.createEvent("CustomEvent"); + e.initCustomEvent(type, bubbles, false, detail); + return e; +} +var managed_styles = new Map(); +var active = 0; +function hash(str) { + let hash2 = 5381; + let i = str.length; + while (i--) + hash2 = (hash2 << 5) - hash2 ^ str.charCodeAt(i); + return hash2 >>> 0; +} +function create_style_information(doc, node) { + const info = { stylesheet: append_empty_stylesheet(node), rules: {} }; + managed_styles.set(doc, info); + return info; +} +function create_rule(node, a, b, duration, delay2, ease, fn, uid = 0) { + const step = 16.666 / duration; + let keyframes = "{\n"; + for (let p = 0; p <= 1; p += step) { + const t = a + (b - a) * ease(p); + keyframes += p * 100 + `%{${fn(t, 1 - t)}} +`; + } + const rule = keyframes + `100% {${fn(b, 1 - b)}} +}`; + const name = `__svelte_${hash(rule)}_${uid}`; + const doc = get_root_for_style(node); + const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node); + if (!rules[name]) { + rules[name] = true; + stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length); + } + const animation = node.style.animation || ""; + node.style.animation = `${animation ? `${animation}, ` : ""}${name} ${duration}ms linear ${delay2}ms 1 both`; + active += 1; + return name; +} +function delete_rule(node, name) { + const previous = (node.style.animation || "").split(", "); + const next = previous.filter(name ? (anim) => anim.indexOf(name) < 0 : (anim) => anim.indexOf("__svelte") === -1); + const deleted = previous.length - next.length; + if (deleted) { + node.style.animation = next.join(", "); + active -= deleted; + if (!active) + clear_rules(); + } +} +function clear_rules() { + raf(() => { + if (active) + return; + managed_styles.forEach((info) => { + const { stylesheet } = info; + let i = stylesheet.cssRules.length; + while (i--) + stylesheet.deleteRule(i); + info.rules = {}; + }); + managed_styles.clear(); + }); +} +var current_component; +function set_current_component(component) { + current_component = component; +} +function get_current_component() { + if (!current_component) + throw new Error("Function called outside component initialization"); + return current_component; +} +function onDestroy(fn) { + get_current_component().$$.on_destroy.push(fn); +} +function bubble(component, event) { + const callbacks = component.$$.callbacks[event.type]; + if (callbacks) { + callbacks.slice().forEach((fn) => fn.call(this, event)); + } +} +var dirty_components = []; +var binding_callbacks = []; +var render_callbacks = []; +var flush_callbacks = []; +var resolved_promise = Promise.resolve(); +var update_scheduled = false; +function schedule_update() { + if (!update_scheduled) { + update_scheduled = true; + resolved_promise.then(flush); + } +} +function add_render_callback(fn) { + render_callbacks.push(fn); +} +var seen_callbacks = new Set(); +var flushidx = 0; +function flush() { + const saved_component = current_component; + do { + while (flushidx < dirty_components.length) { + const component = dirty_components[flushidx]; + flushidx++; + set_current_component(component); + update(component.$$); + } + set_current_component(null); + dirty_components.length = 0; + flushidx = 0; + while (binding_callbacks.length) + binding_callbacks.pop()(); + for (let i = 0; i < render_callbacks.length; i += 1) { + const callback = render_callbacks[i]; + if (!seen_callbacks.has(callback)) { + seen_callbacks.add(callback); + callback(); + } + } + render_callbacks.length = 0; + } while (dirty_components.length); + while (flush_callbacks.length) { + flush_callbacks.pop()(); + } + update_scheduled = false; + seen_callbacks.clear(); + set_current_component(saved_component); +} +function update($$) { + if ($$.fragment !== null) { + $$.update(); + run_all($$.before_update); + const dirty = $$.dirty; + $$.dirty = [-1]; + $$.fragment && $$.fragment.p($$.ctx, dirty); + $$.after_update.forEach(add_render_callback); + } +} +var promise; +function wait2() { + if (!promise) { + promise = Promise.resolve(); + promise.then(() => { + promise = null; + }); + } + return promise; +} +function dispatch(node, direction, kind) { + node.dispatchEvent(custom_event(`${direction ? "intro" : "outro"}${kind}`)); +} +var outroing = new Set(); +var outros; +function group_outros() { + outros = { + r: 0, + c: [], + p: outros + }; +} +function check_outros() { + if (!outros.r) { + run_all(outros.c); + } + outros = outros.p; +} +function transition_in(block, local) { + if (block && block.i) { + outroing.delete(block); + block.i(local); + } +} +function transition_out(block, local, detach2, callback) { + if (block && block.o) { + if (outroing.has(block)) + return; + outroing.add(block); + outros.c.push(() => { + outroing.delete(block); + if (callback) { + if (detach2) + block.d(1); + callback(); + } + }); + block.o(local); + } +} +var null_transition = { duration: 0 }; +function create_bidirectional_transition(node, fn, params, intro) { + let config = fn(node, params); + let t = intro ? 0 : 1; + let running_program = null; + let pending_program = null; + let animation_name = null; + function clear_animation() { + if (animation_name) + delete_rule(node, animation_name); + } + function init2(program, duration) { + const d = program.b - t; + duration *= Math.abs(d); + return { + a: t, + b: program.b, + d, + duration, + start: program.start, + end: program.start + duration, + group: program.group + }; + } + function go(b) { + const { delay: delay2 = 0, duration = 300, easing = identity, tick: tick2 = noop, css } = config || null_transition; + const program = { + start: now() + delay2, + b + }; + if (!b) { + program.group = outros; + outros.r += 1; + } + if (running_program || pending_program) { + pending_program = program; + } else { + if (css) { + clear_animation(); + animation_name = create_rule(node, t, b, duration, delay2, easing, css); + } + if (b) + tick2(0, 1); + running_program = init2(program, duration); + add_render_callback(() => dispatch(node, b, "start")); + loop((now2) => { + if (pending_program && now2 > pending_program.start) { + running_program = init2(pending_program, duration); + pending_program = null; + dispatch(node, running_program.b, "start"); + if (css) { + clear_animation(); + animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css); + } + } + if (running_program) { + if (now2 >= running_program.end) { + tick2(t = running_program.b, 1 - t); + dispatch(node, running_program.b, "end"); + if (!pending_program) { + if (running_program.b) { + clear_animation(); + } else { + if (!--running_program.group.r) + run_all(running_program.group.c); + } + } + running_program = null; + } else if (now2 >= running_program.start) { + const p = now2 - running_program.start; + t = running_program.a + running_program.d * easing(p / running_program.duration); + tick2(t, 1 - t); + } + } + return !!(running_program || pending_program); + }); + } + } + return { + run(b) { + if (is_function(config)) { + wait2().then(() => { + config = config(); + go(b); + }); + } else { + go(b); + } + }, + end() { + clear_animation(); + running_program = pending_program = null; + } + }; +} +var globals = typeof window !== "undefined" ? window : typeof globalThis !== "undefined" ? globalThis : global; +var boolean_attributes = new Set([ + "allowfullscreen", + "allowpaymentrequest", + "async", + "autofocus", + "autoplay", + "checked", + "controls", + "default", + "defer", + "disabled", + "formnovalidate", + "hidden", + "ismap", + "loop", + "multiple", + "muted", + "nomodule", + "novalidate", + "open", + "playsinline", + "readonly", + "required", + "reversed", + "selected" +]); +function create_component(block) { + block && block.c(); +} +function mount_component(component, target, anchor, customElement) { + const { fragment, on_mount, on_destroy, after_update } = component.$$; + fragment && fragment.m(target, anchor); + if (!customElement) { + add_render_callback(() => { + const new_on_destroy = on_mount.map(run).filter(is_function); + if (on_destroy) { + on_destroy.push(...new_on_destroy); + } else { + run_all(new_on_destroy); + } + component.$$.on_mount = []; + }); + } + after_update.forEach(add_render_callback); +} +function destroy_component(component, detaching) { + const $$ = component.$$; + if ($$.fragment !== null) { + run_all($$.on_destroy); + $$.fragment && $$.fragment.d(detaching); + $$.on_destroy = $$.fragment = null; + $$.ctx = []; + } +} +function make_dirty(component, i) { + if (component.$$.dirty[0] === -1) { + dirty_components.push(component); + schedule_update(); + component.$$.dirty.fill(0); + } + component.$$.dirty[i / 31 | 0] |= 1 << i % 31; +} +function init(component, options, instance5, create_fragment5, not_equal, props, append_styles2, dirty = [-1]) { + const parent_component = current_component; + set_current_component(component); + const $$ = component.$$ = { + fragment: null, + ctx: null, + props, + update: noop, + not_equal, + bound: blank_object(), + on_mount: [], + on_destroy: [], + on_disconnect: [], + before_update: [], + after_update: [], + context: new Map(options.context || (parent_component ? parent_component.$$.context : [])), + callbacks: blank_object(), + dirty, + skip_bound: false, + root: options.target || parent_component.$$.root + }; + append_styles2 && append_styles2($$.root); + let ready2 = false; + $$.ctx = instance5 ? instance5(component, options.props || {}, (i, ret, ...rest) => { + const value = rest.length ? rest[0] : ret; + if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) { + if (!$$.skip_bound && $$.bound[i]) + $$.bound[i](value); + if (ready2) + make_dirty(component, i); + } + return ret; + }) : []; + $$.update(); + ready2 = true; + run_all($$.before_update); + $$.fragment = create_fragment5 ? create_fragment5($$.ctx) : false; + if (options.target) { + if (options.hydrate) { + start_hydrating(); + const nodes = children(options.target); + $$.fragment && $$.fragment.l(nodes); + nodes.forEach(detach); + } else { + $$.fragment && $$.fragment.c(); + } + if (options.intro) + transition_in(component.$$.fragment); + mount_component(component, options.target, options.anchor, options.customElement); + end_hydrating(); + flush(); + } + set_current_component(parent_component); +} +var SvelteElement; +if (typeof HTMLElement === "function") { + SvelteElement = class extends HTMLElement { + constructor() { + super(); + this.attachShadow({ mode: "open" }); + } + connectedCallback() { + const { on_mount } = this.$$; + this.$$.on_disconnect = on_mount.map(run).filter(is_function); + for (const key2 in this.$$.slotted) { + this.appendChild(this.$$.slotted[key2]); + } + } + attributeChangedCallback(attr2, _oldValue, newValue) { + this[attr2] = newValue; + } + disconnectedCallback() { + run_all(this.$$.on_disconnect); + } + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } + }; +} +var SvelteComponent = class { + $destroy() { + destroy_component(this, 1); + this.$destroy = noop; + } + $on(type, callback) { + const callbacks = this.$$.callbacks[type] || (this.$$.callbacks[type] = []); + callbacks.push(callback); + return () => { + const index = callbacks.indexOf(callback); + if (index !== -1) + callbacks.splice(index, 1); + }; + } + $set($$props) { + if (this.$$set && !is_empty($$props)) { + this.$$.skip_bound = true; + this.$$set($$props); + this.$$.skip_bound = false; + } + } +}; + +// node_modules/tslib/modules/index.js +var import_tslib = __toModule(require_tslib()); +var { + __extends, + __assign, + __rest, + __decorate, + __param, + __metadata, + __awaiter, + __generator, + __exportStar, + __createBinding, + __values, + __read, + __spread, + __spreadArrays, + __spreadArray, + __await, + __asyncGenerator, + __asyncDelegator, + __asyncValues, + __makeTemplateObject, + __importStar, + __importDefault, + __classPrivateFieldGet, + __classPrivateFieldSet +} = import_tslib.default; + +// src/ui/sidebar/gitView.svelte +var import_obsidian12 = __toModule(require("obsidian")); + +// node_modules/svelte/easing/index.mjs +function cubicOut(t) { + const f = t - 1; + return f * f * f + 1; +} + +// node_modules/svelte/transition/index.mjs +function slide(node, { delay: delay2 = 0, duration = 400, easing = cubicOut } = {}) { + const style = getComputedStyle(node); + const opacity = +style.opacity; + const height = parseFloat(style.height); + const padding_top = parseFloat(style.paddingTop); + const padding_bottom = parseFloat(style.paddingBottom); + const margin_top = parseFloat(style.marginTop); + const margin_bottom = parseFloat(style.marginBottom); + const border_top_width = parseFloat(style.borderTopWidth); + const border_bottom_width = parseFloat(style.borderBottomWidth); + return { + delay: delay2, + duration, + easing, + css: (t) => `overflow: hidden;opacity: ${Math.min(t * 20, 1) * opacity};height: ${t * height}px;padding-top: ${t * padding_top}px;padding-bottom: ${t * padding_bottom}px;margin-top: ${t * margin_top}px;margin-bottom: ${t * margin_bottom}px;border-top-width: ${t * border_top_width}px;border-bottom-width: ${t * border_bottom_width}px;` + }; +} + +// src/ui/sidebar/components/fileComponent.svelte +var import_obsidian10 = __toModule(require("obsidian")); + +// src/ui/modals/discardModal.ts +var import_obsidian9 = __toModule(require("obsidian")); +var DiscardModal = class extends import_obsidian9.Modal { + constructor(app, deletion, filename) { + super(app); + this.deletion = deletion; + this.filename = filename; + this.resolve = null; + } + myOpen() { + this.open(); + return new Promise((resolve) => { + this.resolve = resolve; + }); + } + onOpen() { + let { contentEl, titleEl } = this; + titleEl.setText(`${this.deletion ? "Delete" : "Discard"} this file?`); + contentEl.createEl("h4").setText(`Do you really want to ${this.deletion ? "delete" : "discard the changes of"} "${this.filename}"`); + const div = contentEl.createDiv(); + div.addClass("obsidian-git-center"); + div.createEl("button", { text: "Cancel" }).addEventListener("click", () => { + if (this.resolve) + this.resolve(false); + return this.close(); + }); + div.createEl("button", { + cls: "mod-cta", + text: "Confirm" + }).addEventListener("click", () => __async(this, null, function* () { + if (this.resolve) + this.resolve(true); + this.close(); + })); + } + onClose() { + let { contentEl } = this; + contentEl.empty(); + } +}; + +// src/ui/sidebar/components/fileComponent.svelte +function add_css(target) { + append_styles(target, "svelte-1furf50", "main.svelte-1furf50.svelte-1furf50.svelte-1furf50{cursor:pointer;background-color:var(--background-secondary);border-radius:4px;width:98%;display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:2px}main.svelte-1furf50 .path.svelte-1furf50.svelte-1furf50{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-1furf50:hover .path.svelte-1furf50.svelte-1furf50{color:var(--text-normal);transition:all 200ms}main.svelte-1furf50 .tools.svelte-1furf50.svelte-1furf50{display:flex;align-items:center}main.svelte-1furf50 .tools .type.svelte-1furf50.svelte-1furf50{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-1furf50 .tools .type[data-type=M].svelte-1furf50.svelte-1furf50{color:orange}main.svelte-1furf50 .tools .type[data-type=D].svelte-1furf50.svelte-1furf50{color:red}main.svelte-1furf50 .tools .buttons.svelte-1furf50.svelte-1furf50{display:flex}main.svelte-1furf50 .tools .buttons.svelte-1furf50>.svelte-1furf50{color:var(--text-faint);height:16px;width:16px;margin:0;transition:all 0.2s;border-radius:2px;margin-right:1px}main.svelte-1furf50 .tools .buttons.svelte-1furf50>.svelte-1furf50:hover{color:var(--text-normal);background-color:var(--interactive-accent)}"); +} +function create_if_block(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "svelte-1furf50"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[12](div); + if (!mounted) { + dispose = listen(div, "click", ctx[5]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + ctx[12](null); + mounted = false; + dispose(); + } + }; +} +function create_fragment(ctx) { + let main; + let span0; + let t0_value = ctx[0].path.split("/").last().replace(".md", "") + ""; + let t0; + let span0_aria_label_value; + let t1; + let div3; + let div2; + let show_if = ctx[1].app.vault.getAbstractFileByPath(ctx[0].path); + let t2; + let div0; + let t3; + let div1; + let t4; + let span1; + let t5_value = ctx[0].working_dir + ""; + let t5; + let span1_data_type_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block(ctx); + return { + c() { + main = element("main"); + span0 = element("span"); + t0 = text(t0_value); + t1 = space(); + div3 = element("div"); + div2 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div0 = element("div"); + t3 = space(); + div1 = element("div"); + t4 = space(); + span1 = element("span"); + t5 = text(t5_value); + attr(span0, "class", "path svelte-1furf50"); + attr(span0, "aria-label-position", ctx[3]); + attr(span0, "aria-label", span0_aria_label_value = ctx[0].path.split("/").last() != ctx[0].path ? ctx[0].path : ""); + attr(div0, "data-icon", "feather-skip-back"); + attr(div0, "aria-label", "Discard"); + attr(div0, "class", "svelte-1furf50"); + attr(div1, "data-icon", "feather-plus"); + attr(div1, "aria-label", "Stage"); + attr(div1, "class", "svelte-1furf50"); + attr(div2, "class", "buttons svelte-1furf50"); + attr(span1, "class", "type svelte-1furf50"); + attr(span1, "data-type", span1_data_type_value = ctx[0].working_dir); + attr(div3, "class", "tools svelte-1furf50"); + attr(main, "class", "svelte-1furf50"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, span0); + append2(span0, t0); + append2(main, t1); + append2(main, div3); + append2(div3, div2); + if (if_block) + if_block.m(div2, null); + append2(div2, t2); + append2(div2, div0); + ctx[13](div0); + append2(div2, t3); + append2(div2, div1); + ctx[14](div1); + append2(div3, t4); + append2(div3, span1); + append2(span1, t5); + if (!mounted) { + dispose = [ + listen(span0, "click", self2(ctx[7])), + listen(div0, "click", ctx[8]), + listen(div1, "click", ctx[6]), + listen(main, "mouseover", ctx[4]), + listen(main, "click", self2(ctx[7])), + listen(main, "focus", ctx[11]) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 1 && t0_value !== (t0_value = ctx2[0].path.split("/").last().replace(".md", "") + "")) + set_data(t0, t0_value); + if (dirty & 8) { + attr(span0, "aria-label-position", ctx2[3]); + } + if (dirty & 1 && span0_aria_label_value !== (span0_aria_label_value = ctx2[0].path.split("/").last() != ctx2[0].path ? ctx2[0].path : "")) { + attr(span0, "aria-label", span0_aria_label_value); + } + if (dirty & 3) + show_if = ctx2[1].app.vault.getAbstractFileByPath(ctx2[0].path); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block(ctx2); + if_block.c(); + if_block.m(div2, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & 1 && t5_value !== (t5_value = ctx2[0].working_dir + "")) + set_data(t5, t5_value); + if (dirty & 1 && span1_data_type_value !== (span1_data_type_value = ctx2[0].working_dir)) { + attr(span1, "data-type", span1_data_type_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + if (if_block) + if_block.d(); + ctx[13](null); + ctx[14](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance($$self, $$props, $$invalidate) { + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let { workspace } = $$props; + let buttons = []; + setImmediate(() => buttons.forEach((b) => (0, import_obsidian10.setIcon)(b, b.getAttr("data-icon"), 16))); + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, change.path.split("/").last().replace(".md", "")); + } + } + function open(event) { + if (!(change.path.startsWith(view.app.vault.configDir) || change.path.startsWith(".") || change.working_dir === "D")) { + openOrSwitch(view.app, change.path, event); + } + } + function stage() { + manager.stage(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function showDiff(event) { + const leaf = workspace.activeLeaf; + if (leaf && !leaf.getViewState().pinned && !(event.ctrlKey || event.getModifierState("Meta"))) { + leaf.setViewState({ + type: DIFF_VIEW_CONFIG.type, + state: { file: change.path, staged: false } + }); + } else { + workspace.createLeafInParent(workspace.rootSplit, 0).setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: false } + }); + } + } + function discard() { + const deleteFile = change.working_dir == "U"; + new DiscardModal(view.app, deleteFile, change.path).myOpen().then((shouldDiscard) => { + if (shouldDiscard === true) { + if (deleteFile) { + view.app.vault.adapter.remove(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } else { + manager.discard(change.path).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + } + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(9, manager = $$props2.manager); + if ("workspace" in $$props2) + $$invalidate(10, workspace = $$props2.workspace); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 2) { + $: + $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + side, + hover, + open, + stage, + showDiff, + discard, + manager, + workspace, + focus_handler, + div_binding, + div0_binding, + div1_binding + ]; +} +var FileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance, create_fragment, safe_not_equal, { + change: 0, + view: 1, + manager: 9, + workspace: 10 + }, add_css); + } +}; +var fileComponent_default = FileComponent; + +// src/ui/sidebar/components/stagedFileComponent.svelte +var import_obsidian11 = __toModule(require("obsidian")); +function add_css2(target) { + append_styles(target, "svelte-15heedx", "main.svelte-15heedx.svelte-15heedx.svelte-15heedx{cursor:pointer;background-color:var(--background-secondary);border-radius:4px;width:98%;display:flex;justify-content:space-between;font-size:0.8rem;margin-bottom:2px}main.svelte-15heedx .path.svelte-15heedx.svelte-15heedx{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-15heedx:hover .path.svelte-15heedx.svelte-15heedx{color:var(--text-normal);transition:all 200ms}main.svelte-15heedx .tools.svelte-15heedx.svelte-15heedx{display:flex;align-items:center}main.svelte-15heedx .tools .type.svelte-15heedx.svelte-15heedx{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-15heedx .tools .type[data-type=M].svelte-15heedx.svelte-15heedx{color:orange}main.svelte-15heedx .tools .type[data-type=D].svelte-15heedx.svelte-15heedx{color:red}main.svelte-15heedx .tools .type[data-type=A].svelte-15heedx.svelte-15heedx{color:yellowgreen}main.svelte-15heedx .tools .type[data-type=R].svelte-15heedx.svelte-15heedx{color:violet}main.svelte-15heedx .tools .buttons.svelte-15heedx.svelte-15heedx{display:flex}main.svelte-15heedx .tools .buttons.svelte-15heedx>.svelte-15heedx{color:var(--text-faint);height:16px;width:16px;margin:0;transition:all 0.2s;border-radius:2px;margin-right:1px}main.svelte-15heedx .tools .buttons.svelte-15heedx>.svelte-15heedx:hover{color:var(--text-normal);background-color:var(--interactive-accent)}"); +} +function create_if_block2(ctx) { + let div; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "data-icon", "go-to-file"); + attr(div, "aria-label", "Open File"); + attr(div, "class", "svelte-15heedx"); + }, + m(target, anchor) { + insert(target, div, anchor); + ctx[11](div); + if (!mounted) { + dispose = listen(div, "click", ctx[6]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + ctx[11](null); + mounted = false; + dispose(); + } + }; +} +function create_fragment2(ctx) { + let main; + let span0; + let t0_value = ctx[3].split("/").last().replace(".md", "") + ""; + let t0; + let span0_aria_label_value; + let t1; + let div2; + let div1; + let show_if = ctx[1].app.vault.getAbstractFileByPath(ctx[0].path); + let t2; + let div0; + let t3; + let span1; + let t4_value = ctx[0].index + ""; + let t4; + let span1_data_type_value; + let mounted; + let dispose; + let if_block = show_if && create_if_block2(ctx); + return { + c() { + main = element("main"); + span0 = element("span"); + t0 = text(t0_value); + t1 = space(); + div2 = element("div"); + div1 = element("div"); + if (if_block) + if_block.c(); + t2 = space(); + div0 = element("div"); + t3 = space(); + span1 = element("span"); + t4 = text(t4_value); + attr(span0, "class", "path svelte-15heedx"); + attr(span0, "aria-label-position", ctx[4]); + attr(span0, "aria-label", span0_aria_label_value = ctx[0].path.split("/").last() != ctx[0].path ? ctx[0].path : ""); + attr(div0, "data-icon", "feather-minus"); + attr(div0, "aria-label", "Unstage"); + attr(div0, "class", "svelte-15heedx"); + attr(div1, "class", "buttons svelte-15heedx"); + attr(span1, "class", "type svelte-15heedx"); + attr(span1, "data-type", span1_data_type_value = ctx[0].index); + attr(div2, "class", "tools svelte-15heedx"); + attr(main, "class", "svelte-15heedx"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, span0); + append2(span0, t0); + append2(main, t1); + append2(main, div2); + append2(div2, div1); + if (if_block) + if_block.m(div1, null); + append2(div1, t2); + append2(div1, div0); + ctx[12](div0); + append2(div2, t3); + append2(div2, span1); + append2(span1, t4); + if (!mounted) { + dispose = [ + listen(span0, "click", ctx[7]), + listen(div0, "click", ctx[8]), + listen(main, "mouseover", ctx[5]), + listen(main, "focus", ctx[10]), + listen(main, "click", self2(ctx[7])) + ]; + mounted = true; + } + }, + p(ctx2, [dirty]) { + if (dirty & 8 && t0_value !== (t0_value = ctx2[3].split("/").last().replace(".md", "") + "")) + set_data(t0, t0_value); + if (dirty & 16) { + attr(span0, "aria-label-position", ctx2[4]); + } + if (dirty & 1 && span0_aria_label_value !== (span0_aria_label_value = ctx2[0].path.split("/").last() != ctx2[0].path ? ctx2[0].path : "")) { + attr(span0, "aria-label", span0_aria_label_value); + } + if (dirty & 3) + show_if = ctx2[1].app.vault.getAbstractFileByPath(ctx2[0].path); + if (show_if) { + if (if_block) { + if_block.p(ctx2, dirty); + } else { + if_block = create_if_block2(ctx2); + if_block.c(); + if_block.m(div1, t2); + } + } else if (if_block) { + if_block.d(1); + if_block = null; + } + if (dirty & 1 && t4_value !== (t4_value = ctx2[0].index + "")) + set_data(t4, t4_value); + if (dirty & 1 && span1_data_type_value !== (span1_data_type_value = ctx2[0].index)) { + attr(span1, "data-type", span1_data_type_value); + } + }, + i: noop, + o: noop, + d(detaching) { + if (detaching) + detach(main); + if (if_block) + if_block.d(); + ctx[12](null); + mounted = false; + run_all(dispose); + } + }; +} +function instance2($$self, $$props, $$invalidate) { + let formattedPath; + let side; + let { change } = $$props; + let { view } = $$props; + let { manager } = $$props; + let buttons = []; + setImmediate(() => buttons.forEach((b) => (0, import_obsidian11.setIcon)(b, b.getAttr("data-icon"), 16))); + function hover(event) { + if (!change.path.startsWith(view.app.vault.configDir) || !change.path.startsWith(".")) { + hoverPreview(event, view, formattedPath.split("/").last().replace(".md", "")); + } + } + function open(event) { + if (!(change.path.startsWith(view.app.vault.configDir) || change.path.startsWith(".") || change.index === "D")) { + openOrSwitch(view.app, formattedPath, event); + } + } + function showDiff(event) { + const leaf = view.app.workspace.activeLeaf; + if (leaf && !leaf.getViewState().pinned && !(event.ctrlKey || event.getModifierState("Meta"))) { + leaf.setViewState({ + type: DIFF_VIEW_CONFIG.type, + state: { file: change.path, staged: true } + }); + } else { + view.app.workspace.createLeafInParent(view.app.workspace.rootSplit, 0).setViewState({ + type: DIFF_VIEW_CONFIG.type, + active: true, + state: { file: change.path, staged: true } + }); + } + } + function unstage() { + manager.unstage(formattedPath).finally(() => { + dispatchEvent(new CustomEvent("git-refresh")); + }); + } + function focus_handler(event) { + bubble.call(this, $$self, event); + } + function div_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(2, buttons); + }); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(2, buttons); + }); + } + $$self.$$set = ($$props2) => { + if ("change" in $$props2) + $$invalidate(0, change = $$props2.change); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + if ("manager" in $$props2) + $$invalidate(9, manager = $$props2.manager); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty & 1) { + $: + $$invalidate(3, formattedPath = change.path); + } + if ($$self.$$.dirty & 2) { + $: + $$invalidate(4, side = view.leaf.getRoot().side == "left" ? "right" : "left"); + } + }; + return [ + change, + view, + buttons, + formattedPath, + side, + hover, + open, + showDiff, + unstage, + manager, + focus_handler, + div_binding, + div0_binding + ]; +} +var StagedFileComponent = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance2, create_fragment2, safe_not_equal, { change: 0, view: 1, manager: 9 }, add_css2); + } +}; +var stagedFileComponent_default = StagedFileComponent; + +// src/ui/sidebar/components/treeComponent.svelte +function add_css3(target) { + append_styles(target, "svelte-pgmdei", '@charset "UTF-8";main.svelte-pgmdei.svelte-pgmdei:not(.topLevel){margin-left:5px}.opener.svelte-pgmdei.svelte-pgmdei{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.opener.svelte-pgmdei .collapse-icon.svelte-pgmdei::after{content:"\xA0"}.opener.svelte-pgmdei div.svelte-pgmdei{display:flex}.opener.svelte-pgmdei svg.svelte-pgmdei{transform:rotate(-90deg)}.opener.open.svelte-pgmdei svg.svelte-pgmdei{transform:rotate(0)}.opener.svelte-pgmdei span.svelte-pgmdei{font-size:0.8rem}.file-view.svelte-pgmdei.svelte-pgmdei{margin-left:5px}'); +} +function get_each_context(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[7] = list[i]; + return child_ctx; +} +function create_else_block_1(ctx) { + let div2; + let div1; + let div0; + let t0; + let span; + let t1_value = ctx[7].title + ""; + let t1; + let t2; + let if_block_anchor; + let current; + let mounted; + let dispose; + function click_handler() { + return ctx[6](ctx[7]); + } + let if_block = !ctx[5][ctx[7].title] && create_if_block_2(ctx); + return { + c() { + div2 = element("div"); + div1 = element("div"); + div0 = element("div"); + div0.innerHTML = ``; + t0 = space(); + span = element("span"); + t1 = text(t1_value); + t2 = space(); + if (if_block) + if_block.c(); + if_block_anchor = empty(); + attr(div0, "class", "tree-item-icon collapse-icon svelte-pgmdei"); + attr(div0, "style", ""); + attr(span, "class", "svelte-pgmdei"); + attr(div1, "class", "svelte-pgmdei"); + attr(div2, "class", "opener tree-item-self is-clickable svelte-pgmdei"); + toggle_class(div2, "open", !ctx[5][ctx[7].title]); + }, + m(target, anchor) { + insert(target, div2, anchor); + append2(div2, div1); + append2(div1, div0); + append2(div1, t0); + append2(div1, span); + append2(span, t1); + insert(target, t2, anchor); + if (if_block) + if_block.m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + if (!mounted) { + dispose = listen(div2, "click", click_handler); + mounted = true; + } + }, + p(new_ctx, dirty) { + ctx = new_ctx; + if ((!current || dirty & 1) && t1_value !== (t1_value = ctx[7].title + "")) + set_data(t1, t1_value); + if (dirty & 33) { + toggle_class(div2, "open", !ctx[5][ctx[7].title]); + } + if (!ctx[5][ctx[7].title]) { + if (if_block) { + if_block.p(ctx, dirty); + if (dirty & 33) { + transition_in(if_block, 1); + } + } else { + if_block = create_if_block_2(ctx); + if_block.c(); + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + } else if (if_block) { + group_outros(); + transition_out(if_block, 1, 1, () => { + if_block = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div2); + if (detaching) + detach(t2); + if (if_block) + if_block.d(detaching); + if (detaching) + detach(if_block_anchor); + mounted = false; + dispose(); + } + }; +} +function create_if_block3(ctx) { + let div; + let current_block_type_index; + let if_block; + let t; + let current; + const if_block_creators = [create_if_block_1, create_else_block]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if (ctx2[3]) + return 0; + return 1; + } + current_block_type_index = select_block_type_1(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + t = space(); + attr(div, "class", "file-view svelte-pgmdei"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, t); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + } + }; +} +function create_if_block_2(ctx) { + let div; + let treecomponent; + let t; + let div_transition; + let current; + treecomponent = new TreeComponent({ + props: { + hierarchy: ctx[7], + plugin: ctx[1], + view: ctx[2], + staged: ctx[3] + } + }); + return { + c() { + div = element("div"); + create_component(treecomponent.$$.fragment); + t = space(); + attr(div, "class", "file-view svelte-pgmdei"); + }, + m(target, anchor) { + insert(target, div, anchor); + mount_component(treecomponent, div, null); + append2(div, t); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty & 1) + treecomponent_changes.hierarchy = ctx2[7]; + if (dirty & 2) + treecomponent_changes.plugin = ctx2[1]; + if (dirty & 4) + treecomponent_changes.view = ctx2[2]; + if (dirty & 8) + treecomponent_changes.staged = ctx2[3]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 75 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 75 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + destroy_component(treecomponent); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ctx[7].statusResult, + manager: ctx[1].gitManager, + view: ctx[2], + workspace: ctx[1].app.workspace + } + }); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty & 1) + filecomponent_changes.change = ctx2[7].statusResult; + if (dirty & 2) + filecomponent_changes.manager = ctx2[1].gitManager; + if (dirty & 4) + filecomponent_changes.view = ctx2[2]; + if (dirty & 2) + filecomponent_changes.workspace = ctx2[1].app.workspace; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_if_block_1(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ctx[7].statusResult, + manager: ctx[1].gitManager, + view: ctx[2] + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty & 1) + stagedfilecomponent_changes.change = ctx2[7].statusResult; + if (dirty & 2) + stagedfilecomponent_changes.manager = ctx2[1].gitManager; + if (dirty & 4) + stagedfilecomponent_changes.view = ctx2[2]; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_each_block(ctx) { + let current_block_type_index; + let if_block; + let if_block_anchor; + let current; + const if_block_creators = [create_if_block3, create_else_block_1]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if (ctx2[7].statusResult) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, -1); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + if_block.c(); + if_block_anchor = empty(); + }, + m(target, anchor) { + if_blocks[current_block_type_index].m(target, anchor); + insert(target, if_block_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(if_block_anchor.parentNode, if_block_anchor); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + current = true; + }, + o(local) { + transition_out(if_block); + current = false; + }, + d(detaching) { + if_blocks[current_block_type_index].d(detaching); + if (detaching) + detach(if_block_anchor); + } + }; +} +function create_fragment3(ctx) { + let main; + let current; + let each_value = ctx[0].children; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block(get_each_context(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + main = element("main"); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + attr(main, "class", "svelte-pgmdei"); + toggle_class(main, "topLevel", ctx[4]); + }, + m(target, anchor) { + insert(target, main, anchor); + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(main, null); + } + current = true; + }, + p(ctx2, [dirty]) { + if (dirty & 47) { + each_value = ctx2[0].children; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(main, null); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + if (dirty & 16) { + toggle_class(main, "topLevel", ctx2[4]); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(main); + destroy_each(each_blocks, detaching); + } + }; +} +function instance3($$self, $$props, $$invalidate) { + let { hierarchy } = $$props; + let { plugin } = $$props; + let { view } = $$props; + let { staged } = $$props; + let { topLevel = false } = $$props; + const closed = {}; + const click_handler = (entity) => { + $$invalidate(5, closed[entity.title] = !closed[entity.title], closed); + }; + $$self.$$set = ($$props2) => { + if ("hierarchy" in $$props2) + $$invalidate(0, hierarchy = $$props2.hierarchy); + if ("plugin" in $$props2) + $$invalidate(1, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(2, view = $$props2.view); + if ("staged" in $$props2) + $$invalidate(3, staged = $$props2.staged); + if ("topLevel" in $$props2) + $$invalidate(4, topLevel = $$props2.topLevel); + }; + return [hierarchy, plugin, view, staged, topLevel, closed, click_handler]; +} +var TreeComponent = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance3, create_fragment3, safe_not_equal, { + hierarchy: 0, + plugin: 1, + view: 2, + staged: 3, + topLevel: 4 + }, add_css3); + } +}; +var treeComponent_default = TreeComponent; + +// src/ui/sidebar/gitView.svelte +function add_css4(target) { + append_styles(target, "svelte-1f0ksxd", '@charset "UTF-8";.commit-msg.svelte-1f0ksxd.svelte-1f0ksxd{width:100%;min-height:1.9em;height:1.9em;resize:vertical;padding:2px 5px;background-color:var(--background-modifier-form-field)}.search-input-container.svelte-1f0ksxd.svelte-1f0ksxd{width:100%}.file-view.svelte-1f0ksxd.svelte-1f0ksxd{margin-left:5px}.opener.svelte-1f0ksxd.svelte-1f0ksxd{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.opener.svelte-1f0ksxd .collapse-icon.svelte-1f0ksxd::after{content:"\xA0"}.opener.svelte-1f0ksxd div.svelte-1f0ksxd{display:flex}.opener.svelte-1f0ksxd svg.svelte-1f0ksxd{transform:rotate(-90deg)}.opener.open.svelte-1f0ksxd svg.svelte-1f0ksxd{transform:rotate(0)}.git-view-body.svelte-1f0ksxd.svelte-1f0ksxd{overflow-y:auto;padding-left:10px}main.svelte-1f0ksxd.svelte-1f0ksxd{display:flex;flex-direction:column;height:100%;overflow-y:hidden}.nav-buttons-container.svelte-1f0ksxd.svelte-1f0ksxd{justify-content:space-between}.group.svelte-1f0ksxd.svelte-1f0ksxd{display:flex}'); +} +function get_each_context2(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[35] = list[i]; + return child_ctx; +} +function get_each_context_1(ctx, list, i) { + const child_ctx = ctx.slice(); + child_ctx[38] = list[i]; + return child_ctx; +} +function create_if_block_5(ctx) { + let div; + let div_aria_label_value; + let mounted; + let dispose; + return { + c() { + div = element("div"); + attr(div, "class", "search-input-clear-button"); + attr(div, "aria-label", div_aria_label_value = "Clear"); + }, + m(target, anchor) { + insert(target, div, anchor); + if (!mounted) { + dispose = listen(div, "click", ctx[27]); + mounted = true; + } + }, + p: noop, + d(detaching) { + if (detaching) + detach(div); + mounted = false; + dispose(); + } + }; +} +function create_if_block4(ctx) { + let div3; + let div2; + let div1; + let t2; + let span1; + let t3_value = ctx[6].staged.length + ""; + let t3; + let t4; + let t5; + let div7; + let div6; + let div5; + let t8; + let span3; + let t9_value = ctx[6].changed.length + ""; + let t9; + let t10; + let current; + let mounted; + let dispose; + let if_block0 = ctx[10] && create_if_block_3(ctx); + let if_block1 = ctx[9] && create_if_block_12(ctx); + return { + c() { + div3 = element("div"); + div2 = element("div"); + div1 = element("div"); + div1.innerHTML = `
    + Staged Changes`; + t2 = space(); + span1 = element("span"); + t3 = text(t3_value); + t4 = space(); + if (if_block0) + if_block0.c(); + t5 = space(); + div7 = element("div"); + div6 = element("div"); + div5 = element("div"); + div5.innerHTML = `
    + Changes`; + t8 = space(); + span3 = element("span"); + t9 = text(t9_value); + t10 = space(); + if (if_block1) + if_block1.c(); + attr(div1, "class", "svelte-1f0ksxd"); + attr(span1, "class", "tree-item-flair"); + attr(div2, "class", "opener tree-item-self is-clickable svelte-1f0ksxd"); + toggle_class(div2, "open", ctx[10]); + attr(div3, "class", "staged"); + attr(div5, "class", "svelte-1f0ksxd"); + attr(span3, "class", "tree-item-flair"); + attr(div6, "class", "opener tree-item-self is-clickable svelte-1f0ksxd"); + toggle_class(div6, "open", ctx[9]); + attr(div7, "class", "changes"); + }, + m(target, anchor) { + insert(target, div3, anchor); + append2(div3, div2); + append2(div2, div1); + append2(div2, t2); + append2(div2, span1); + append2(span1, t3); + append2(div3, t4); + if (if_block0) + if_block0.m(div3, null); + insert(target, t5, anchor); + insert(target, div7, anchor); + append2(div7, div6); + append2(div6, div5); + append2(div6, t8); + append2(div6, span3); + append2(span3, t9); + append2(div7, t10); + if (if_block1) + if_block1.m(div7, null); + current = true; + if (!mounted) { + dispose = [ + listen(div2, "click", ctx[28]), + listen(div6, "click", ctx[29]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if ((!current || dirty[0] & 64) && t3_value !== (t3_value = ctx2[6].staged.length + "")) + set_data(t3, t3_value); + if (dirty[0] & 1024) { + toggle_class(div2, "open", ctx2[10]); + } + if (ctx2[10]) { + if (if_block0) { + if_block0.p(ctx2, dirty); + if (dirty[0] & 1024) { + transition_in(if_block0, 1); + } + } else { + if_block0 = create_if_block_3(ctx2); + if_block0.c(); + transition_in(if_block0, 1); + if_block0.m(div3, null); + } + } else if (if_block0) { + group_outros(); + transition_out(if_block0, 1, 1, () => { + if_block0 = null; + }); + check_outros(); + } + if ((!current || dirty[0] & 64) && t9_value !== (t9_value = ctx2[6].changed.length + "")) + set_data(t9, t9_value); + if (dirty[0] & 512) { + toggle_class(div6, "open", ctx2[9]); + } + if (ctx2[9]) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & 512) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block_12(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div7, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block0); + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block0); + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) + detach(div3); + if (if_block0) + if_block0.d(); + if (detaching) + detach(t5); + if (detaching) + detach(div7); + if (if_block1) + if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function create_if_block_3(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_4, create_else_block_12]; + const if_blocks = []; + function select_block_type(ctx2, dirty) { + if (ctx2[2]) + return 0; + return 1; + } + current_block_type_index = select_block_type(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "file-view svelte-1f0ksxd"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block_12(ctx) { + let each_1_anchor; + let current; + let each_value_1 = ctx[6].staged; + let each_blocks = []; + for (let i = 0; i < each_value_1.length; i += 1) { + each_blocks[i] = create_each_block_1(get_each_context_1(ctx, each_value_1, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 67) { + each_value_1 = ctx2[6].staged; + let i; + for (i = 0; i < each_value_1.length; i += 1) { + const child_ctx = get_each_context_1(ctx2, each_value_1, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block_1(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value_1.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value_1.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_4(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[8], + plugin: ctx[0], + view: ctx[1], + staged: true, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 256) + treecomponent_changes.hierarchy = ctx2[8]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block_1(ctx) { + let stagedfilecomponent; + let current; + stagedfilecomponent = new stagedFileComponent_default({ + props: { + change: ctx[38], + view: ctx[1], + manager: ctx[0].gitManager + } + }); + return { + c() { + create_component(stagedfilecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(stagedfilecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const stagedfilecomponent_changes = {}; + if (dirty[0] & 64) + stagedfilecomponent_changes.change = ctx2[38]; + if (dirty[0] & 2) + stagedfilecomponent_changes.view = ctx2[1]; + if (dirty[0] & 1) + stagedfilecomponent_changes.manager = ctx2[0].gitManager; + stagedfilecomponent.$set(stagedfilecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(stagedfilecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(stagedfilecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(stagedfilecomponent, detaching); + } + }; +} +function create_if_block_12(ctx) { + let div; + let current_block_type_index; + let if_block; + let div_transition; + let current; + const if_block_creators = [create_if_block_22, create_else_block2]; + const if_blocks = []; + function select_block_type_1(ctx2, dirty) { + if (ctx2[2]) + return 0; + return 1; + } + current_block_type_index = select_block_type_1(ctx, [-1, -1]); + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx); + return { + c() { + div = element("div"); + if_block.c(); + attr(div, "class", "file-view svelte-1f0ksxd"); + }, + m(target, anchor) { + insert(target, div, anchor); + if_blocks[current_block_type_index].m(div, null); + current = true; + }, + p(ctx2, dirty) { + let previous_block_index = current_block_type_index; + current_block_type_index = select_block_type_1(ctx2, dirty); + if (current_block_type_index === previous_block_index) { + if_blocks[current_block_type_index].p(ctx2, dirty); + } else { + group_outros(); + transition_out(if_blocks[previous_block_index], 1, 1, () => { + if_blocks[previous_block_index] = null; + }); + check_outros(); + if_block = if_blocks[current_block_type_index]; + if (!if_block) { + if_block = if_blocks[current_block_type_index] = if_block_creators[current_block_type_index](ctx2); + if_block.c(); + } else { + if_block.p(ctx2, dirty); + } + transition_in(if_block, 1); + if_block.m(div, null); + } + }, + i(local) { + if (current) + return; + transition_in(if_block); + if (local) { + add_render_callback(() => { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, true); + div_transition.run(1); + }); + } + current = true; + }, + o(local) { + transition_out(if_block); + if (local) { + if (!div_transition) + div_transition = create_bidirectional_transition(div, slide, { duration: 150 }, false); + div_transition.run(0); + } + current = false; + }, + d(detaching) { + if (detaching) + detach(div); + if_blocks[current_block_type_index].d(); + if (detaching && div_transition) + div_transition.end(); + } + }; +} +function create_else_block2(ctx) { + let each_1_anchor; + let current; + let each_value = ctx[6].changed; + let each_blocks = []; + for (let i = 0; i < each_value.length; i += 1) { + each_blocks[i] = create_each_block2(get_each_context2(ctx, each_value, i)); + } + const out = (i) => transition_out(each_blocks[i], 1, 1, () => { + each_blocks[i] = null; + }); + return { + c() { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].c(); + } + each_1_anchor = empty(); + }, + m(target, anchor) { + for (let i = 0; i < each_blocks.length; i += 1) { + each_blocks[i].m(target, anchor); + } + insert(target, each_1_anchor, anchor); + current = true; + }, + p(ctx2, dirty) { + if (dirty[0] & 8259) { + each_value = ctx2[6].changed; + let i; + for (i = 0; i < each_value.length; i += 1) { + const child_ctx = get_each_context2(ctx2, each_value, i); + if (each_blocks[i]) { + each_blocks[i].p(child_ctx, dirty); + transition_in(each_blocks[i], 1); + } else { + each_blocks[i] = create_each_block2(child_ctx); + each_blocks[i].c(); + transition_in(each_blocks[i], 1); + each_blocks[i].m(each_1_anchor.parentNode, each_1_anchor); + } + } + group_outros(); + for (i = each_value.length; i < each_blocks.length; i += 1) { + out(i); + } + check_outros(); + } + }, + i(local) { + if (current) + return; + for (let i = 0; i < each_value.length; i += 1) { + transition_in(each_blocks[i]); + } + current = true; + }, + o(local) { + each_blocks = each_blocks.filter(Boolean); + for (let i = 0; i < each_blocks.length; i += 1) { + transition_out(each_blocks[i]); + } + current = false; + }, + d(detaching) { + destroy_each(each_blocks, detaching); + if (detaching) + detach(each_1_anchor); + } + }; +} +function create_if_block_22(ctx) { + let treecomponent; + let current; + treecomponent = new treeComponent_default({ + props: { + hierarchy: ctx[7], + plugin: ctx[0], + view: ctx[1], + staged: false, + topLevel: true + } + }); + return { + c() { + create_component(treecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(treecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const treecomponent_changes = {}; + if (dirty[0] & 128) + treecomponent_changes.hierarchy = ctx2[7]; + if (dirty[0] & 1) + treecomponent_changes.plugin = ctx2[0]; + if (dirty[0] & 2) + treecomponent_changes.view = ctx2[1]; + treecomponent.$set(treecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(treecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(treecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(treecomponent, detaching); + } + }; +} +function create_each_block2(ctx) { + let filecomponent; + let current; + filecomponent = new fileComponent_default({ + props: { + change: ctx[35], + view: ctx[1], + manager: ctx[0].gitManager, + workspace: ctx[0].app.workspace + } + }); + filecomponent.$on("git-refresh", ctx[13]); + return { + c() { + create_component(filecomponent.$$.fragment); + }, + m(target, anchor) { + mount_component(filecomponent, target, anchor); + current = true; + }, + p(ctx2, dirty) { + const filecomponent_changes = {}; + if (dirty[0] & 64) + filecomponent_changes.change = ctx2[35]; + if (dirty[0] & 2) + filecomponent_changes.view = ctx2[1]; + if (dirty[0] & 1) + filecomponent_changes.manager = ctx2[0].gitManager; + if (dirty[0] & 1) + filecomponent_changes.workspace = ctx2[0].app.workspace; + filecomponent.$set(filecomponent_changes); + }, + i(local) { + if (current) + return; + transition_in(filecomponent.$$.fragment, local); + current = true; + }, + o(local) { + transition_out(filecomponent.$$.fragment, local); + current = false; + }, + d(detaching) { + destroy_component(filecomponent, detaching); + } + }; +} +function create_fragment4(ctx) { + let main; + let div9; + let div6; + let div0; + let t0; + let div1; + let t1; + let div2; + let t2; + let div3; + let t3; + let div4; + let t4; + let div5; + let t5; + let div7; + let t6; + let div8; + let textarea; + let t7; + let t8; + let div10; + let current; + let mounted; + let dispose; + let if_block0 = ctx[4] && create_if_block_5(ctx); + let if_block1 = ctx[6] && create_if_block4(ctx); + return { + c() { + main = element("main"); + div9 = element("div"); + div6 = element("div"); + div0 = element("div"); + t0 = space(); + div1 = element("div"); + t1 = space(); + div2 = element("div"); + t2 = space(); + div3 = element("div"); + t3 = space(); + div4 = element("div"); + t4 = space(); + div5 = element("div"); + t5 = space(); + div7 = element("div"); + t6 = space(); + div8 = element("div"); + textarea = element("textarea"); + t7 = space(); + if (if_block0) + if_block0.c(); + t8 = space(); + div10 = element("div"); + if (if_block1) + if_block1.c(); + attr(div0, "id", "commit-btn"); + attr(div0, "data-icon", "feather-check"); + attr(div0, "class", "nav-action-button"); + attr(div0, "aria-label", "Commit"); + attr(div1, "id", "stage-all"); + attr(div1, "class", "nav-action-button"); + attr(div1, "data-icon", "feather-plus-circle"); + attr(div1, "aria-label", "Stage all"); + attr(div2, "id", "unstage-all"); + attr(div2, "class", "nav-action-button"); + attr(div2, "data-icon", "feather-minus-circle"); + attr(div2, "aria-label", "Unstage all"); + attr(div3, "id", "push"); + attr(div3, "class", "nav-action-button"); + attr(div3, "data-icon", "feather-upload"); + attr(div3, "aria-label", "Push"); + attr(div4, "id", "pull"); + attr(div4, "class", "nav-action-button"); + attr(div4, "data-icon", "feather-download"); + attr(div4, "aria-label", "Pull"); + attr(div5, "id", "layoutChange"); + attr(div5, "class", "nav-action-button"); + attr(div5, "aria-label", "Change Layout"); + attr(div6, "class", "group svelte-1f0ksxd"); + attr(div7, "id", "refresh"); + attr(div7, "class", "nav-action-button"); + attr(div7, "data-icon", "feather-refresh-cw"); + attr(div7, "aria-label", "Refresh"); + toggle_class(div7, "loading", ctx[11]); + attr(textarea, "class", "commit-msg svelte-1f0ksxd"); + attr(textarea, "type", "text"); + attr(textarea, "spellcheck", "true"); + attr(textarea, "placeholder", "Commit Message"); + attr(div8, "class", "search-input-container svelte-1f0ksxd"); + attr(div9, "class", "nav-buttons-container svelte-1f0ksxd"); + attr(div10, "class", "git-view-body svelte-1f0ksxd"); + attr(main, "class", "svelte-1f0ksxd"); + }, + m(target, anchor) { + insert(target, main, anchor); + append2(main, div9); + append2(div9, div6); + append2(div6, div0); + ctx[18](div0); + append2(div6, t0); + append2(div6, div1); + ctx[19](div1); + append2(div6, t1); + append2(div6, div2); + ctx[20](div2); + append2(div6, t2); + append2(div6, div3); + ctx[21](div3); + append2(div6, t3); + append2(div6, div4); + ctx[22](div4); + append2(div6, t4); + append2(div6, div5); + ctx[23](div5); + append2(div9, t5); + append2(div9, div7); + ctx[25](div7); + append2(div9, t6); + append2(div9, div8); + append2(div8, textarea); + set_input_value(textarea, ctx[4]); + append2(div8, t7); + if (if_block0) + if_block0.m(div8, null); + append2(main, t8); + append2(main, div10); + if (if_block1) + if_block1.m(div10, null); + current = true; + if (!mounted) { + dispose = [ + listen(div0, "click", ctx[12]), + listen(div1, "click", ctx[14]), + listen(div2, "click", ctx[15]), + listen(div3, "click", ctx[16]), + listen(div4, "click", ctx[17]), + listen(div5, "click", ctx[24]), + listen(div7, "click", ctx[13]), + listen(textarea, "input", ctx[26]) + ]; + mounted = true; + } + }, + p(ctx2, dirty) { + if (dirty[0] & 2048) { + toggle_class(div7, "loading", ctx2[11]); + } + if (dirty[0] & 16) { + set_input_value(textarea, ctx2[4]); + } + if (ctx2[4]) { + if (if_block0) { + if_block0.p(ctx2, dirty); + } else { + if_block0 = create_if_block_5(ctx2); + if_block0.c(); + if_block0.m(div8, null); + } + } else if (if_block0) { + if_block0.d(1); + if_block0 = null; + } + if (ctx2[6]) { + if (if_block1) { + if_block1.p(ctx2, dirty); + if (dirty[0] & 64) { + transition_in(if_block1, 1); + } + } else { + if_block1 = create_if_block4(ctx2); + if_block1.c(); + transition_in(if_block1, 1); + if_block1.m(div10, null); + } + } else if (if_block1) { + group_outros(); + transition_out(if_block1, 1, 1, () => { + if_block1 = null; + }); + check_outros(); + } + }, + i(local) { + if (current) + return; + transition_in(if_block1); + current = true; + }, + o(local) { + transition_out(if_block1); + current = false; + }, + d(detaching) { + if (detaching) + detach(main); + ctx[18](null); + ctx[19](null); + ctx[20](null); + ctx[21](null); + ctx[22](null); + ctx[23](null); + ctx[25](null); + if (if_block0) + if_block0.d(); + if (if_block1) + if_block1.d(); + mounted = false; + run_all(dispose); + } + }; +} +function instance4($$self, $$props, $$invalidate) { + let { plugin } = $$props; + let { view } = $$props; + let commitMessage = plugin.settings.commitMessage; + let buttons = []; + let status; + let changeHierarchy; + let stagedHierarchy; + let changesOpen = true; + let stagedOpen = true; + let loading = true; + const debRefresh = (0, import_obsidian12.debounce)(() => { + if (plugin.settings.refreshSourceControl) { + refresh(); + } + }, 1e3); + let showTree = plugin.settings.treeStructure; + let layoutBtn; + let modifyEvent; + let deleteEvent; + let createEvent; + let renameEvent; + addEventListener("git-refresh", refresh); + plugin.app.workspace.onLayoutReady(() => setImmediate(() => { + buttons.forEach((btn) => (0, import_obsidian12.setIcon)(btn, btn.getAttr("data-icon"), 16)); + (0, import_obsidian12.setIcon)(layoutBtn, showTree ? "feather-list" : "feather-folder", 16); + modifyEvent = plugin.app.vault.on("modify", () => { + debRefresh(); + }); + deleteEvent = plugin.app.vault.on("delete", () => { + debRefresh(); + }); + createEvent = plugin.app.vault.on("create", () => { + debRefresh(); + }); + renameEvent = plugin.app.vault.on("rename", () => { + debRefresh(); + }); + plugin.registerEvent(modifyEvent); + plugin.registerEvent(deleteEvent); + plugin.registerEvent(createEvent); + plugin.registerEvent(renameEvent); + })); + onDestroy(() => { + plugin.app.metadataCache.offref(modifyEvent); + plugin.app.metadataCache.offref(deleteEvent); + plugin.app.metadataCache.offref(createEvent); + plugin.app.metadataCache.offref(renameEvent); + removeEventListener("git-refresh", refresh); + }); + function commit() { + $$invalidate(11, loading = true); + plugin.gitManager.commit(commitMessage).then(() => { + if (commitMessage !== plugin.settings.commitMessage) { + $$invalidate(4, commitMessage = ""); + } + }).finally(refresh); + } + function refresh() { + return __awaiter(this, void 0, void 0, function* () { + $$invalidate(11, loading = true); + $$invalidate(6, status = yield plugin.gitManager.status()); + $$invalidate(7, changeHierarchy = { + title: "", + children: plugin.gitManager.getTreeStructure(status.changed) + }); + $$invalidate(8, stagedHierarchy = { + title: "", + children: plugin.gitManager.getTreeStructure(status.staged) + }); + $$invalidate(11, loading = false); + }); + } + function stageAll() { + $$invalidate(11, loading = true); + plugin.gitManager.stageAll().finally(refresh); + } + function unstageAll() { + $$invalidate(11, loading = true); + plugin.gitManager.unstageAll().finally(refresh); + } + function push() { + $$invalidate(11, loading = true); + if (ready) { + plugin.push().finally(refresh); + } + } + function pull() { + $$invalidate(11, loading = true); + plugin.pullChangesFromRemote().finally(refresh); + } + function div0_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[0] = $$value; + $$invalidate(5, buttons); + }); + } + function div1_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[1] = $$value; + $$invalidate(5, buttons); + }); + } + function div2_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[2] = $$value; + $$invalidate(5, buttons); + }); + } + function div3_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[3] = $$value; + $$invalidate(5, buttons); + }); + } + function div4_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[4] = $$value; + $$invalidate(5, buttons); + }); + } + function div5_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + layoutBtn = $$value; + $$invalidate(3, layoutBtn); + }); + } + const click_handler = () => { + $$invalidate(2, showTree = !showTree); + $$invalidate(0, plugin.settings.treeStructure = showTree, plugin); + plugin.saveSettings(); + }; + function div7_binding($$value) { + binding_callbacks[$$value ? "unshift" : "push"](() => { + buttons[6] = $$value; + $$invalidate(5, buttons); + }); + } + function textarea_input_handler() { + commitMessage = this.value; + $$invalidate(4, commitMessage); + } + const click_handler_1 = () => $$invalidate(4, commitMessage = ""); + const click_handler_2 = () => $$invalidate(10, stagedOpen = !stagedOpen); + const click_handler_3 = () => $$invalidate(9, changesOpen = !changesOpen); + $$self.$$set = ($$props2) => { + if ("plugin" in $$props2) + $$invalidate(0, plugin = $$props2.plugin); + if ("view" in $$props2) + $$invalidate(1, view = $$props2.view); + }; + $$self.$$.update = () => { + if ($$self.$$.dirty[0] & 12) { + $: { + if (layoutBtn) { + layoutBtn.empty(); + (0, import_obsidian12.setIcon)(layoutBtn, showTree ? "feather-list" : "feather-folder", 16); + } + } + } + }; + return [ + plugin, + view, + showTree, + layoutBtn, + commitMessage, + buttons, + status, + changeHierarchy, + stagedHierarchy, + changesOpen, + stagedOpen, + loading, + commit, + refresh, + stageAll, + unstageAll, + push, + pull, + div0_binding, + div1_binding, + div2_binding, + div3_binding, + div4_binding, + div5_binding, + click_handler, + div7_binding, + textarea_input_handler, + click_handler_1, + click_handler_2, + click_handler_3 + ]; +} +var GitView = class extends SvelteComponent { + constructor(options) { + super(); + init(this, options, instance4, create_fragment4, safe_not_equal, { plugin: 0, view: 1 }, add_css4, [-1, -1]); + } +}; +var gitView_default = GitView; + +// src/ui/sidebar/sidebarView.ts +var GitView2 = class extends import_obsidian13.ItemView { + constructor(leaf, plugin) { + super(leaf); + this.plugin = plugin; + this.hoverPopover = null; + } + getViewType() { + return GIT_VIEW_CONFIG.type; + } + getDisplayText() { + return GIT_VIEW_CONFIG.name; + } + getIcon() { + return GIT_VIEW_CONFIG.icon; + } + onClose() { + this._view.$destroy(); + return super.onClose(); + } + onOpen() { + this._view = new gitView_default({ + target: this.contentEl, + props: { + plugin: this.plugin, + view: this + } + }); + return super.onOpen(); + } +}; + +// src/main.ts +var ObsidianGit = class extends import_obsidian14.Plugin { + constructor() { + super(...arguments); + this.gitReady = false; + this.promiseQueue = new PromiseQueue(); + this.conflictOutputFile = "conflict-files-obsidian-git.md"; + } + setState(state) { + var _a2; + this.state = state; + (_a2 = this.statusBar) == null ? void 0 : _a2.display(); + } + onload() { + return __async(this, null, function* () { + console.log("loading " + this.manifest.name + " plugin"); + yield this.loadSettings(); + this.migrateSettings(); + addIcons(); + this.registerView(GIT_VIEW_CONFIG.type, (leaf) => { + return new GitView2(leaf, this); + }); + this.registerView(DIFF_VIEW_CONFIG.type, (leaf) => { + return new DiffView(leaf, this); + }); + this.app.workspace.registerHoverLinkSource(GIT_VIEW_CONFIG.type, { + display: "Git View", + defaultMod: true + }); + this.addSettingTab(new ObsidianGitSettingsTab(this.app, this)); + this.addCommand({ + id: "open-git-view", + name: "Open source control view", + callback: () => __async(this, null, function* () { + if (this.app.workspace.getLeavesOfType(GIT_VIEW_CONFIG.type).length === 0) { + yield this.app.workspace.getRightLeaf(false).setViewState({ + type: GIT_VIEW_CONFIG.type + }); + } + this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(GIT_VIEW_CONFIG.type).first()); + dispatchEvent(new CustomEvent("git-refresh")); + }) + }); + this.addCommand({ + id: "open-diff-view", + name: "Open diff view", + editorCallback: (editor, view) => __async(this, null, function* () { + this.app.workspace.createLeafBySplit(view.leaf).setViewState({ type: DIFF_VIEW_CONFIG.type, state: { staged: false, file: view.file.path } }); + }) + }); + this.addCommand({ + id: "view-file-on-github", + name: "Open file on GitHub", + editorCallback: (editor, { file }) => openLineInGitHub(editor, file, this.gitManager) + }); + this.addCommand({ + id: "view-history-on-github", + name: "Open file history on GitHub", + editorCallback: (_, { file }) => openHistoryInGitHub(file, this.gitManager) + }); + this.addCommand({ + id: "pull", + name: "Pull", + callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) + }); + this.addCommand({ + id: "push", + name: "Create backup", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) + }); + this.addCommand({ + id: "commit-push-specified-message", + name: "Create backup with specific message", + callback: () => this.promiseQueue.addTask(() => this.createBackup(false, true)) + }); + this.addCommand({ + id: "commit", + name: "Commit all changes", + callback: () => this.promiseQueue.addTask(() => this.commit(false)) + }); + this.addCommand({ + id: "commit-specified-message", + name: "Commit all changes with specific message", + callback: () => this.promiseQueue.addTask(() => this.commit(false, true)) + }); + this.addCommand({ + id: "push2", + name: "Push", + callback: () => this.promiseQueue.addTask(() => this.push()) + }); + this.addCommand({ + id: "edit-remotes", + name: "Edit remotes", + callback: () => __async(this, null, function* () { + return this.editRemotes(); + }) + }); + this.addCommand({ + id: "remove-remote", + name: "Remove remote", + callback: () => __async(this, null, function* () { + return this.removeRemote(); + }) + }); + this.addCommand({ + id: "init-repo", + name: "Initialize a new repo", + callback: () => __async(this, null, function* () { + return this.createNewRepo(); + }) + }); + this.addCommand({ + id: "clone-repo", + name: "Clone an existing remote repo", + callback: () => __async(this, null, function* () { + return this.cloneNewRepo(); + }) + }); + this.addCommand({ + id: "list-changed-files", + name: "List changed files", + callback: () => __async(this, null, function* () { + const status = yield this.gitManager.status(); + this.setState(PluginState.idle); + new ChangedFilesModal(this, status.changed).open(); + }) + }); + if (this.settings.showStatusBar) { + let statusBarEl = this.addStatusBarItem(); + this.statusBar = new StatusBar(statusBarEl, this); + this.registerInterval(window.setInterval(() => this.statusBar.display(), 1e3)); + } + this.app.workspace.onLayoutReady(() => this.init()); + }); + } + migrateSettings() { + if (this.settings.mergeOnPull != void 0) { + this.settings.syncMethod = this.settings.mergeOnPull ? "merge" : "rebase"; + this.settings.mergeOnPull = void 0; + return this.saveSettings(); + } + if (this.settings.autoCommitMessage === void 0) { + this.settings.autoCommitMessage = this.settings.commitMessage; + this.saveSettings(); + } + } + onunload() { + return __async(this, null, function* () { + this.app.workspace.unregisterHoverLinkSource(GIT_VIEW_CONFIG.type); + this.app.workspace.detachLeavesOfType(GIT_VIEW_CONFIG.type); + this.app.workspace.detachLeavesOfType(DIFF_VIEW_CONFIG.type); + this.clearAutoPull(); + this.clearAutoBackup(); + console.log("unloading " + this.manifest.name + " plugin"); + }); + } + loadSettings() { + return __async(this, null, function* () { + this.settings = Object.assign({}, DEFAULT_SETTINGS, yield this.loadData()); + }); + } + saveSettings() { + return __async(this, null, function* () { + yield this.saveData(this.settings); + }); + } + saveLastAuto(date, mode) { + return __async(this, null, function* () { + if (mode === "backup") { + window.localStorage.setItem(this.manifest.id + ":lastAutoBackup", date.toString()); + } else if (mode === "pull") { + window.localStorage.setItem(this.manifest.id + ":lastAutoPull", date.toString()); + } + }); + } + loadLastAuto() { + return __async(this, null, function* () { + var _a2, _b; + return { + "backup": new Date((_a2 = window.localStorage.getItem(this.manifest.id + ":lastAutoBackup")) != null ? _a2 : ""), + "pull": new Date((_b = window.localStorage.getItem(this.manifest.id + ":lastAutoPull")) != null ? _b : "") + }; + }); + } + init() { + return __async(this, null, function* () { + try { + this.gitManager = new SimpleGit(this); + const result = yield this.gitManager.checkRequirements(); + switch (result) { + case "missing-git": + this.displayError("Cannot run git command"); + break; + case "missing-repo": + new import_obsidian14.Notice("Can't find a valid git repository. Please create one via the given command."); + break; + case "valid": + this.gitReady = true; + this.setState(PluginState.idle); + dispatchEvent(new CustomEvent("git-refresh")); + if (this.settings.autoPullOnBoot) { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + } + const lastAutos = yield this.loadLastAuto(); + if (this.settings.autoSaveInterval > 0) { + const now2 = new Date(); + const diff = this.settings.autoSaveInterval - Math.round((now2.getTime() - lastAutos.backup.getTime()) / 1e3 / 60); + this.startAutoBackup(diff <= 0 ? 0 : diff); + } + if (this.settings.autoPullInterval > 0) { + const now2 = new Date(); + const diff = this.settings.autoPullInterval - Math.round((now2.getTime() - lastAutos.pull.getTime()) / 1e3 / 60); + this.startAutoPull(diff <= 0 ? 0 : diff); + } + break; + default: + console.log("Something weird happened. The 'checkRequirements' result is " + result); + } + } catch (error) { + this.displayError(error); + console.error(error); + } + }); + } + createNewRepo() { + return __async(this, null, function* () { + yield this.gitManager.init(); + new import_obsidian14.Notice("Initialized new repo"); + }); + } + cloneNewRepo() { + return __async(this, null, function* () { + const modal = new GeneralModal(this.app, [], "Enter remote URL"); + const url = yield modal.open(); + if (url) { + let dir = yield new GeneralModal(this.app, [], "Enter directory for clone. It needs to be empty or not existent.").open(); + if (dir) { + dir = path2.normalize(dir); + new import_obsidian14.Notice(`Cloning new repo into "${dir}"`); + yield this.gitManager.clone(url, dir); + new import_obsidian14.Notice("Cloned new repo"); + } + } + }); + } + isAllInitialized() { + return __async(this, null, function* () { + if (!this.gitReady) { + yield this.init(); + } + return this.gitReady; + }); + } + pullChangesFromRemote() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return; + const filesUpdated = yield this.pull(); + if (!filesUpdated) { + this.displayMessage("Everything is up-to-date"); + } + if (this.gitManager instanceof SimpleGit) { + const status = yield this.gitManager.status(); + if (status.conflicted.length > 0) { + this.displayError(`You have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}`); + } + } + dispatchEvent(new CustomEvent("git-refresh")); + this.lastUpdate = Date.now(); + this.setState(PluginState.idle); + }); + } + createBackup(fromAutoBackup, requestCustomMessage = false) { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return; + if (!fromAutoBackup) { + const file = this.app.vault.getAbstractFileByPath(this.conflictOutputFile); + yield this.app.vault.delete(file); + } + if (this.gitManager instanceof SimpleGit) { + const status = yield this.gitManager.status(); + if (fromAutoBackup && status.conflicted.length > 0) { + this.setState(PluginState.idle); + this.displayError(`Did not commit, because you have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}. Please resolve them and commit per command.`); + this.handleConflict(status.conflicted); + return; + } + } + if (!(yield this.commit(fromAutoBackup, requestCustomMessage))) + return; + if (!this.settings.disablePush) { + if (yield this.gitManager.canPush()) { + if (this.settings.pullBeforePush) { + yield this.pull(); + } + if (!(yield this.push())) + return; + } else { + this.displayMessage("No changes to push"); + } + } + this.setState(PluginState.idle); + }); + } + commit(fromAutoBackup, requestCustomMessage = false) { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return false; + const changedFiles = (yield this.gitManager.status()).changed; + if (changedFiles.length !== 0) { + let commitMessage = fromAutoBackup ? this.settings.autoCommitMessage : this.settings.commitMessage; + if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { + if (!this.settings.disablePopups && fromAutoBackup) { + new import_obsidian14.Notice("Auto backup: Please enter a custom commit message. Leave empty to abort"); + } + const tempMessage = yield new CustomMessageModal(this, true).open(); + if (tempMessage != void 0 && tempMessage != "" && tempMessage != "...") { + commitMessage = tempMessage; + } else { + this.setState(PluginState.idle); + return false; + } + } + const committedFiles = yield this.gitManager.commitAll(commitMessage); + this.displayMessage(`Committed ${committedFiles} ${committedFiles > 1 ? "files" : "file"}`); + } else { + this.displayMessage("No changes to commit"); + } + dispatchEvent(new CustomEvent("git-refresh")); + this.setState(PluginState.idle); + return true; + }); + } + push() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return false; + if (!this.remotesAreSet()) { + return false; + } + let status; + if (this.gitManager instanceof SimpleGit && (status = yield this.gitManager.status()).conflicted.length > 0) { + this.displayError(`Cannot push. You have ${status.conflicted.length} conflict ${status.conflicted.length > 1 ? "files" : "file"}`); + this.handleConflict(status.conflicted); + return false; + } else { + const pushedFiles = yield this.gitManager.push(); + this.lastUpdate = Date.now(); + this.displayMessage(`Pushed ${pushedFiles} ${pushedFiles > 1 ? "files" : "file"} to remote`); + this.setState(PluginState.idle); + return true; + } + }); + } + pull() { + return __async(this, null, function* () { + const pulledFilesLength = yield this.gitManager.pull(); + if (pulledFilesLength > 0) { + this.displayMessage(`Pulled ${pulledFilesLength} ${pulledFilesLength > 1 ? "files" : "file"} from remote`); + } + return pulledFilesLength != 0; + }); + } + remotesAreSet() { + return __async(this, null, function* () { + if (!(yield this.gitManager.branchInfo()).tracking) { + new import_obsidian14.Notice("No upstream branch is set. Please select one."); + const remoteBranch = yield this.selectRemoteBranch(); + if (remoteBranch == void 0) { + this.displayError("Did not push. No upstream-branch is set!", 1e4); + this.setState(PluginState.idle); + return false; + } else { + yield this.gitManager.updateUpstreamBranch(remoteBranch); + return true; + } + } + return true; + }); + } + startAutoBackup(minutes) { + const time = (minutes != null ? minutes : this.settings.autoSaveInterval) * 6e4; + if (this.settings.autoBackupAfterFileChange) { + if (minutes === 0) { + this.doAutoBackup(); + } else { + this.onFileModifyEventRef = this.app.vault.on("modify", () => this.autoBackupDebouncer()); + this.autoBackupDebouncer = (0, import_obsidian14.debounce)(() => this.doAutoBackup(), time, true); + } + } else { + this.timeoutIDBackup = window.setTimeout(() => this.doAutoBackup(), time); + } + } + doAutoBackup() { + this.promiseQueue.addTask(() => this.createBackup(true)); + this.saveLastAuto(new Date(), "backup"); + this.saveSettings(); + this.startAutoBackup(); + } + startAutoPull(minutes) { + this.timeoutIDPull = window.setTimeout(() => { + this.promiseQueue.addTask(() => this.pullChangesFromRemote()); + this.saveLastAuto(new Date(), "pull"); + this.saveSettings(); + this.startAutoPull(); + }, (minutes != null ? minutes : this.settings.autoPullInterval) * 6e4); + } + clearAutoBackup() { + var _a2; + let wasActive = false; + if (this.timeoutIDBackup) { + window.clearTimeout(this.timeoutIDBackup); + this.timeoutIDBackup = void 0; + wasActive = true; + } + if (this.onFileModifyEventRef) { + (_a2 = this.autoBackupDebouncer) == null ? void 0 : _a2.cancel(); + this.app.vault.offref(this.onFileModifyEventRef); + this.onFileModifyEventRef = void 0; + wasActive = true; + } + return wasActive; + } + clearAutoPull() { + if (this.timeoutIDPull) { + window.clearTimeout(this.timeoutIDPull); + this.timeoutIDPull = void 0; + return true; + } + return false; + } + handleConflict(conflicted) { + return __async(this, null, function* () { + this.setState(PluginState.conflicted); + const lines = [ + "# Conflict files", + "Please resolve them and commit per command (This file will be deleted before the commit).", + ...conflicted.map((e) => { + const file = this.app.vault.getAbstractFileByPath(e); + if (file instanceof import_obsidian14.TFile) { + const link = this.app.metadataCache.fileToLinktext(file, "/"); + return `- [[${link}]]`; + } else { + return `- Not a file: ${e}`; + } + }) + ]; + this.writeAndOpenFile(lines.join("\n")); + }); + } + editRemotes() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return; + const remotes = yield this.gitManager.getRemotes(); + const nameModal = new GeneralModal(this.app, remotes, "Select or create a new remote by typing its name and selecting it"); + const remoteName = yield nameModal.open(); + if (remoteName) { + const urlModal = new GeneralModal(this.app, [], "Enter the remote URL"); + const remoteURL = yield urlModal.open(); + yield this.gitManager.setRemote(remoteName, remoteURL); + return remoteName; + } + }); + } + selectRemoteBranch() { + return __async(this, null, function* () { + let remotes = yield this.gitManager.getRemotes(); + let selectedRemote; + if (remotes.length === 0) { + selectedRemote = yield this.editRemotes(); + if (selectedRemote == void 0) { + remotes = yield this.gitManager.getRemotes(); + } + } + const nameModal = new GeneralModal(this.app, remotes, "Select or create a new remote by typing its name and selecting it"); + const remoteName = selectedRemote != null ? selectedRemote : yield nameModal.open(); + if (remoteName) { + this.displayMessage("Fetching remote branches"); + yield this.gitManager.fetch(remoteName); + const branches = yield this.gitManager.getRemoteBranches(remoteName); + const branchModal = new GeneralModal(this.app, branches, "Select or create a new remote branch by typing its name and selecting it"); + return yield branchModal.open(); + } + }); + } + removeRemote() { + return __async(this, null, function* () { + if (!(yield this.isAllInitialized())) + return; + const remotes = yield this.gitManager.getRemotes(); + const nameModal = new GeneralModal(this.app, remotes, "Select a remote"); + const remoteName = yield nameModal.open(); + if (remoteName) { + this.gitManager.removeRemote(remoteName); + } + }); + } + writeAndOpenFile(text2) { + return __async(this, null, function* () { + yield this.app.vault.adapter.write(this.conflictOutputFile, text2); + let fileIsAlreadyOpened = false; + this.app.workspace.iterateAllLeaves((leaf) => { + if (leaf.getDisplayText() != "" && this.conflictOutputFile.startsWith(leaf.getDisplayText())) { + fileIsAlreadyOpened = true; + } + }); + if (!fileIsAlreadyOpened) { + this.app.workspace.openLinkText(this.conflictOutputFile, "/", true); + } + }); + } + displayMessage(message, timeout = 4 * 1e3) { + var _a2; + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + if (!this.settings.disablePopups) { + new import_obsidian14.Notice(message, 5 * 1e3); + } + console.log(`git obsidian message: ${message}`); + } + displayError(message, timeout = 0) { + var _a2; + message = message.toString(); + new import_obsidian14.Notice(message, 15 * 1e3); + console.log(`git obsidian error: ${message}`); + (_a2 = this.statusBar) == null ? void 0 : _a2.displayMessage(message.toLowerCase(), timeout); + } +}; +// Annotate the CommonJS export names for ESM import in node: +0 && (module.exports = {}); +/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */ diff --git a/.obsidian/plugins/obsidian-git/manifest.json b/.obsidian/plugins/obsidian-git/manifest.json new file mode 100644 index 0000000..adc78a2 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/manifest.json @@ -0,0 +1,8 @@ +{ + "id": "obsidian-git", + "name": "Obsidian Git", + "description": "Backup your vault with git.", + "isDesktopOnly": true, + "js": "main.js", + "version": "1.24.1" +} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css new file mode 100644 index 0000000..68a06f0 --- /dev/null +++ b/.obsidian/plugins/obsidian-git/styles.css @@ -0,0 +1,413 @@ +@keyframes loading { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.loading > svg { + animation: 2s linear infinite loading; + transform-origin: 50% 50%; + display: inline-block; +} + +.obsidian-git-center { + margin: auto; + width: 50%; +} + +.tooltip.mod-left { + overflow-wrap: break-word; +} + +.tooltip.mod-right { + overflow-wrap: break-word; +} + +.obsidian-git-shortcuts { + margin: 10px; +} + +.diff-err { + height: 100%; + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; +} + +.diff-err-sign { + font-size: 2em; +} + +.workspace-leaf-content[data-type="diff-view"] .d2h-d-none { + display: none; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-wrapper { + text-align: left; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header { + background-color: var(--background-primary); + border-bottom: 1px solid var(--interactive-accent); + font-family: var(--font-monospace); + height: 35px; + padding: 5px 10px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-header, +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + display: -webkit-box; + display: -ms-flexbox; + display: flex; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-stats { + font-size: 14px; + margin-left: auto; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-added { + border: 1px solid #b4e2b4; + border-radius: 5px 0 0 5px; + color: #399839; + padding: 2px; + text-align: right; + vertical-align: middle; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-lines-deleted { + border: 1px solid #e9aeae; + border-radius: 0 5px 5px 0; + color: #c33; + margin-left: 1px; + padding: 2px; + text-align: left; + vertical-align: middle; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name-wrapper { + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 15px; + width: 100%; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-name { + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-wrapper { + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + margin-bottom: 1em; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse { + -webkit-box-pack: end; + -ms-flex-pack: end; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; + border: 1px solid var(--background-modifier-border); + border-radius: 3px; + cursor: pointer; + display: none; + font-size: 12px; + justify-content: flex-end; + padding: 4px 8px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse.d2h-selected { + background-color: #c8e1ff; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-collapse-input { + margin: 0 4px 0 0; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-diff-table { + border-collapse: collapse; + font-family: Menlo, Consolas, monospace; + font-size: 13px; + width: 100%; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-files-diff { + width: 100%; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-diff { + overflow-y: hidden; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-side-diff { + display: inline-block; + margin-bottom: -8px; + margin-right: -4px; + overflow-x: scroll; + overflow-y: hidden; + width: 50%; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line { + padding: 0 8em; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + display: inline-block; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + white-space: nowrap; + width: 100%; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line { + padding: 0 4.5em; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-ctn { + word-wrap: normal; + background: none; + display: inline-block; + padding: 0; + -webkit-user-select: text; + -moz-user-select: text; + -ms-user-select: text; + user-select: text; + vertical-align: middle; + white-space: pre; + width: 100%; +} +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + del { + background-color: #ffb6ba; +} +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + del { + background-color: #8d232881; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line del, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-line ins { + border-radius: 0.2em; + display: inline-block; + margin-top: -1px; + text-decoration: none; + vertical-align: middle; +} +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + ins { + background-color: #97f295; + text-align: left; +} +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-code-line ins, +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-code-side-line + ins { + background-color: #1d921996; + text-align: left; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix { + word-wrap: normal; + background: none; + display: inline; + padding: 0; + white-space: pre; +} +.workspace-leaf-content[data-type="diff-view"] .line-num1 { + float: left; +} +.workspace-leaf-content[data-type="diff-view"] .line-num1, +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + -webkit-box-sizing: border-box; + box-sizing: border-box; + overflow: hidden; + padding: 0 0.5em; + text-overflow: ellipsis; + width: 3.5em; +} +.workspace-leaf-content[data-type="diff-view"] .line-num2 { + float: right; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + position: absolute; + text-align: right; + width: 7.5em; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber:after { + content: "\200b"; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + background-color: var(--background-primary); + border: solid var(--background-modifier-border); + border-width: 0 1px; + -webkit-box-sizing: border-box; + box-sizing: border-box; + color: var(--text-muted); + cursor: pointer; + display: inline-block; + overflow: hidden; + padding: 0 0.5em; + position: absolute; + text-align: right; + text-overflow: ellipsis; + width: 4em; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber:after { + content: "\200b"; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-emptyplaceholder, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-line-prefix, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-emptyplaceholder { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-code-linenumber, +.workspace-leaf-content[data-type="diff-view"] .d2h-code-side-linenumber { + direction: rtl; +} +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #fee8e9; + border-color: #e9aeae; +} +.theme-light .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: #dfd; + border-color: #b4e2b4; +} +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-del { + background-color: #521b1d83; + border-color: #691d1d73; +} +.theme-dark .workspace-leaf-content[data-type="diff-view"] .d2h-ins { + background-color: rgba(30, 71, 30, 0.5); + border-color: #13501381; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-info { + background-color: var(--background-primary); + border-color: var(--background-modifier-border); + color: var(--text-normal); +} +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-del.d2h-change { + background-color: #fdf2d0; +} +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-del.d2h-change { + background-color: #55492480; +} +.theme-light + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-ins.d2h-change { + background-color: #ded; +} +.theme-dark + .workspace-leaf-content[data-type="diff-view"] + .d2h-file-diff + .d2h-ins.d2h-change { + background-color: rgba(37, 78, 37, 0.418); +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper { + margin-bottom: 10px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-wrapper a { + color: #3572b0; + text-decoration: none; +} +.workspace-leaf-content[data-type="diff-view"] + .d2h-file-list-wrapper + a:visited { + color: #3572b0; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-header { + text-align: left; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-title { + font-weight: 700; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list-line { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + text-align: left; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list { + display: block; + list-style: none; + margin: 0; + padding: 0; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li { + border-bottom: 1px solid var(--background-modifier-border); + margin: 0; + padding: 5px 10px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-list > li:last-child { + border-bottom: none; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-file-switch { + cursor: pointer; + display: none; + font-size: 10px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-icon { + fill: currentColor; + margin-right: 10px; + vertical-align: middle; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted { + color: #c33; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-added { + color: #399839; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-changed { + color: #d0b44c; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-moved { + color: #3572b0; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-tag { + background-color: var(--background-primary); + display: -webkit-box; + display: -ms-flexbox; + display: flex; + font-size: 10px; + margin-left: 5px; + padding: 0 2px; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-deleted-tag { + border: 2px solid #c33; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-added-tag { + border: 1px solid #399839; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-changed-tag { + border: 1px solid #d0b44c; +} +.workspace-leaf-content[data-type="diff-view"] .d2h-moved-tag { + border: 1px solid #3572b0; +} diff --git a/.obsidian/workspace b/.obsidian/workspace index 8ca573d..f0fe364 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -9,7 +9,7 @@ "state": { "type": "markdown", "state": { - "file": "随时随地/简单的 React 思考 - useMemo.md", + "file": "随时随地/简单的 React 思考 - Fiber 创建.md", "mode": "source", "source": false } @@ -53,7 +53,7 @@ } ], "direction": "horizontal", - "width": 300 + "width": 325 }, "right": { "id": "70ba7477ebc2c174", @@ -69,7 +69,7 @@ "state": { "type": "backlink", "state": { - "file": "随时随地/简单的 React 思考 - useMemo.md", + "file": "随时随地/简单的 React 思考 - Fiber 创建.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -89,15 +89,15 @@ }, "active": "1508f46ea2481b37", "lastOpenFiles": [ - "随时随地/简单的 React 思考 - useMemo.md", + "随时随地/简单的 React 思考 - Fiber 创建.md", + "随时随地/简单的 React 思考 - Context.md", + "随时随地/简单的 React 思考 - 状态管理工具.md", + "随时随地/useEffect 和 Debounce.md", "随时随地/React Hooks 的碎片记录.md", "随时随地/奇怪的疑惑.md", "随时随地/简单的 React 思考 - useReducer.md", - "随时随地/useEffect 和 Debounce.md", - "1648111615(1) 5.png.md", - "1648111615(1).png", - "1648111615(1) 5.png", - "随时随地/简单的 React 思考 - Hook.md", - "随时随地/简单的 React 思考 - Fiber 创建.md" + "随时随地/简单的 React 思考 - useCallback和useMemo.md", + "随时随地/简单的 React 思考 - useMemo.md", + "1648111615(1) 5.png.md" ] } \ No newline at end of file diff --git a/随时随地/Images/useCallback.png b/随时随地/Images/useCallback.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2a9d74298305edf097178fb6934192380ff171 GIT binary patch literal 277474 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

    ;K9QnDr=o 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 }iKne?F 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

    fL=hy+>xiS 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

    @|3Rm9;rakrJ# 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

    `piGi@i5kbNY^!Jbd|cfLgwXi5|kD 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 literal 0 HcmV?d00001 diff --git a/随时随地/Images/useMemo.png b/随时随地/Images/useMemo.png new file mode 100644 index 0000000000000000000000000000000000000000..a2194990f886a12bc0e19abea425663625730be9 GIT binary patch literal 303279 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çk%kGp3v$pQu(vp3{ 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�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 useEffect 顺序,所以在下一次 render 执行之前一定会执行一次 useEffect,那么我在 useEffect 的第一个参数回调函数中放一个定时器,并在 return 中返回一个清除定时器的函数,那么我不就可以在每一次 render 执行之后 useEffect 执行之前清除上一次在 useEffect 中存放的定时器了吗?这里为了保证每一次都会有 render 触发 useEffect,还需要用到 useState,这样不就是很典型的 Debounce 实现思路吗? + 具体代码如下图 ![[useEffect 和 Debounce.png]] diff --git a/随时随地/简单的 React 思考 - useCallback.md b/随时随地/简单的 React 思考 - useCallback.md deleted file mode 100644 index 0caef3c..0000000 --- a/随时随地/简单的 React 思考 - useCallback.md +++ /dev/null @@ -1 +0,0 @@ -# 简单的 React 思考: useCallback \ No newline at end of file diff --git a/随时随地/简单的 React 思考 - useCallback和useMemo.md b/随时随地/简单的 React 思考 - useCallback和useMemo.md new file mode 100644 index 0000000..432fdc7 --- /dev/null +++ b/随时随地/简单的 React 思考 - useCallback和useMemo.md @@ -0,0 +1,29 @@ +# 简单的 React 思考: useCallback / useMemo +useCallback 和 useMemo 都是 React 里边比较简单的 Hook,先看看官网对于这两个 Hook 的介绍。 + +```javascript +// useCallback +const memoizedCallback = useCallback( + () => { doSomething(a, b) }, + [a, b] +); + +// useMemo +const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); +``` + +useCallback 会返回一个 memoized 函数,而 useMemo 会返回一个 memoized 值 +他们的第二个参数接受一个依赖项数组,回调函数只会在依赖项发生改变的时候才会更新,它的比较算法和 Object.is 的一致,即引用对比。 +他们都是作为性能优化的一个方法提供,他们的不同之处在于,useCallback 返回一个函数,而useMemo 会返回一个值,这个值由传入 useMemo 的回调函数在渲染期间执行。 + +上 React 源码,结合[[简单的 React 思考 - Fiber 创建]]一起看 + +useCallback +![[useCallback.png]] + +useCallback 在 mount 和 update 阶段都会对 deps 也就是依赖项做简单的 underfined 判断,在 update 的时候会用 areHookInputsEqual 对依赖项做对比,如果依赖项没有变就返回 memorizedState 中存储的回调函数 + +useMemo +![[useMemo.png]] + +和 useCallback 相同,useMemo 也会在 mount 和 update 的时候对 deps 依赖项参数做简单的underfined 判断,但是与 useCallback 在 mounte 阶段直接将 函数和 deps 一起存入 memoizedState 不同,useMemo 会执行传入的回调函数,并将函数的返回值和 deps 一起存入memoizedState,在 update 阶段的处理和 useCallback 几乎是一样的。 \ No newline at end of file diff --git a/随时随地/简单的 React 思考 - useMemo.md b/随时随地/简单的 React 思考 - useMemo.md deleted file mode 100644 index 1f5ca10..0000000 --- a/随时随地/简单的 React 思考 - useMemo.md +++ /dev/null @@ -1 +0,0 @@ -# 简单的 React 思考 - useMemo \ No newline at end of file