diff --git a/.obsidian/app.json b/.obsidian/app.json deleted file mode 100644 index fe14a6aa..00000000 --- a/.obsidian/app.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "foldHeading": true, - "foldIndent": true, - "defaultViewMode": "preview", - "newFileLocation": "current", - "newLinkFormat": "relative", - "attachmentFolderPath": "images", - "pdfExportSettings": { - "pageSize": "A4", - "landscape": false, - "margin": "0", - "downscalePercent": 100 - } -} \ No newline at end of file diff --git a/.obsidian/appearance.json b/.obsidian/appearance.json deleted file mode 100644 index 6f9a6430..00000000 --- a/.obsidian/appearance.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "baseFontSize": 16, - "enabledCssSnippets": [ - "BG4E", - "font", - "default", - "margin-wide" - ], - "theme": "obsidian" -} \ No newline at end of file diff --git a/.obsidian/community-plugins.json b/.obsidian/community-plugins.json deleted file mode 100644 index 4fcf8dcb..00000000 --- a/.obsidian/community-plugins.json +++ /dev/null @@ -1,6 +0,0 @@ -[ - "obsidian-hider", - "obsidian-git", - "cm-show-whitespace-obsidian", - "wikilinks-to-mdlinks-obsidian" -] \ No newline at end of file diff --git a/.obsidian/config b/.obsidian/config deleted file mode 100644 index d6d73f22..00000000 --- a/.obsidian/config +++ /dev/null @@ -1 +0,0 @@ -{"baseFontSize":16,"enabledPlugins":[],"pluginEnabledStatus":{"file-explorer":true,"global-search":true,"switcher":true,"graph":true,"backlink":true,"page-preview":true,"command-palette":true,"markdown-importer":true,"word-count":true,"open-with-default-app":true,"file-recovery":true},"enabledCssSnippets":["BG4E"]} \ No newline at end of file diff --git a/.obsidian/core-plugins.json b/.obsidian/core-plugins.json deleted file mode 100644 index b8aa5bc3..00000000 --- a/.obsidian/core-plugins.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - "file-explorer", - "global-search", - "switcher", - "tag-pane", - "page-preview", - "command-palette", - "starred", - "outline", - "open-with-default-app", - "workspaces", - "file-recovery" -] \ No newline at end of file diff --git a/.obsidian/graph.json b/.obsidian/graph.json deleted file mode 100644 index e21a18dc..00000000 --- a/.obsidian/graph.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "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 deleted file mode 100644 index 6335901a..00000000 --- a/.obsidian/hotkeys.json +++ /dev/null @@ -1,127 +0,0 @@ -{ - "workspace:close": [], - "command-palette:open": [ - { - "modifiers": [ - "Mod", - "Shift" - ], - "key": "P" - } - ], - "workspace:edit-file-title": [], - "workspace:export-pdf": [ - { - "modifiers": [ - "Mod" - ], - "key": "P" - } - ], - "editor:follow-link": [], - "graph:open": [], - "obsidian-hider:toggle-app-ribbon": [ - { - "modifiers": [ - "Alt" - ], - "key": "A" - } - ], - "app:go-forward": [ - { - "modifiers": [ - "Alt" - ], - "key": "ArrowRight" - } - ], - "obsidian-git:push": [ - { - "modifiers": [ - "Mod" - ], - "key": "G" - } - ], - "obsidian-git:commit-push-specified-message": [ - { - "modifiers": [ - "Mod", - "Shift" - ], - "key": "G" - } - ], - "editor:open-link-in-new-leaf": [], - "app:open-settings": [], - "switcher:open": [], - "workspace:split-vertical": [ - { - "modifiers": [ - "Alt" - ], - "key": "V" - } - ], - "workspace:split-horizontal": [ - { - "modifiers": [ - "Alt" - ], - "key": "H" - } - ], - "editor:swap-line-down": [ - { - "modifiers": [ - "Mod" - ], - "key": "D" - } - ], - "editor:swap-line-up": [ - { - "modifiers": [ - "Mod" - ], - "key": "U" - } - ], - "editor:toggle-checklist-status": [], - "editor:toggle-comments": [], - "app:toggle-left-sidebar": [ - { - "modifiers": [ - "Alt" - ], - "key": "L" - } - ], - "app:toggle-right-sidebar": [ - { - "modifiers": [ - "Alt" - ], - "key": "R" - } - ], - "workspace:undo-close-pane": [], - "wikilinks-to-mdlinks-obsidian:toggle-wiki-md-links": [ - { - "modifiers": [ - "Mod" - ], - "key": "L" - } - ], - "editor:delete-paragraph": [], - "app:go-back": [ - { - "modifiers": [ - "Alt" - ], - "key": "ArrowLeft" - } - ] -} \ No newline at end of file diff --git a/.obsidian/plugins/cm-show-whitespace-obsidian/data.json b/.obsidian/plugins/cm-show-whitespace-obsidian/data.json deleted file mode 100644 index ec8070e2..00000000 --- a/.obsidian/plugins/cm-show-whitespace-obsidian/data.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "enabled": true, - "showNewline": true, - "showTab": true, - "showSpace": true, - "showSingleSpace": true, - "showTrailingSpace": true, - "showStrictLineBreak": false -} \ No newline at end of file diff --git a/.obsidian/plugins/cm-show-whitespace-obsidian/main.js b/.obsidian/plugins/cm-show-whitespace-obsidian/main.js deleted file mode 100644 index cb92d406..00000000 --- a/.obsidian/plugins/cm-show-whitespace-obsidian/main.js +++ /dev/null @@ -1,344 +0,0 @@ -'use strict'; - -var obsidian = require('obsidian'); - -/*! ***************************************************************************** -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. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - 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]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -function __awaiter(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()); - }); -} - -function __generator(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 }; - } -} - -CodeMirror.defineOption('showInvisibles', false, (cm, val, prev) => { - let Count = 0; - const Maximum = cm.getOption('maxInvisibles') || 16; - if (prev === CodeMirror.Init) - prev = false; - if (prev && !val) { - cm.removeOverlay('invisibles'); - return; - } - if (!prev && val) { - //add(Maximum); - cm.addOverlay({ - name: 'invisibles', - token: function nextToken(stream) { - let spaces = 0; - let peek = stream.peek() === ' '; - if (peek) { - while (peek && spaces < Maximum) { - ++spaces; - stream.next(); - peek = stream.peek() === ' '; - } - let ret = 'whitespace whitespace-' + spaces; - /* - * styles should be different - * could not be two same styles - * beside because of this check in runmode - * function in `codemirror.js`: - * - * 6624: if (!flattenSpans || curStyle != style) {} - */ - if (spaces === Maximum) - ret += ' whitespace-rand-' + Count++; - return ret; - } - while (!stream.eol() && !peek) { - stream.next(); - peek = stream.peek() === ' '; - } - return 'cm-eol'; - }, - }); - } -}); - -var DEFAULT_SETTINGS = { - enabled: true, - showNewline: true, - showTab: true, - showSpace: true, - showSingleSpace: true, - showTrailingSpace: true, - showStrictLineBreak: false -}; -var CMShowWhitespacePlugin = /** @class */ (function (_super) { - __extends(CMShowWhitespacePlugin, _super); - function CMShowWhitespacePlugin() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.disable = function () { - document.body.classList.remove('plugin-cm-show-whitespace'); - // @ts-ignore - _this.app.workspace.iterateCodeMirrors(function (cm) { return cm.setOption("showInvisibles", false); }); - _this.saveSettings({ enabled: false }); - }; - _this.enable = function () { - document.body.classList.add('plugin-cm-show-whitespace'); - // @ts-ignore - _this.registerCodeMirror(function (cm) { return cm.setOption("showInvisibles", true); }); - _this.saveSettings({ enabled: true }); - }; - _this.updateHiddenChars = function () { - var _a = _this.settings, showNewline = _a.showNewline, showSingleSpace = _a.showSingleSpace, showSpace = _a.showSpace, showTab = _a.showTab, showTrailingSpace = _a.showTrailingSpace, showStrictLineBreak = _a.showStrictLineBreak; - var classList = document.body.classList; - classList.toggle('plugin-cm-show-whitespace-hide-newline', !showNewline); - classList.toggle('plugin-cm-show-whitespace-hide-tab', !showTab); - classList.toggle('plugin-cm-show-whitespace-hide-space', !showSpace); - classList.toggle('plugin-cm-show-whitespace-hide-single-space', !showSingleSpace); - classList.toggle('plugin-cm-show-whitespace-hide-trailing-space', !showTrailingSpace); - classList.toggle('plugin-cm-show-whitespace-show-strict-line-break', showStrictLineBreak); - }; - return _this; - } - CMShowWhitespacePlugin.prototype.onload = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.loadSettings()]; - case 1: - _a.sent(); - if (this.settings.enabled) { - this.app.workspace.layoutReady ? this.enable() : this.app.workspace.on('layout-ready', this.enable); - } - // add the toggle on/off command - this.addCommand({ - id: 'toggle-show-whitespace', - name: 'Toggle On/Off', - callback: function () { - // disable or enable as necessary - _this.settings.enabled ? _this.disable() : _this.enable(); - } - }); - this.addSettingTab(new CMShowWhitespacePluginSettingTab(this.app, this)); - return [2 /*return*/]; - } - }); - }); - }; - CMShowWhitespacePlugin.prototype.onunload = function () { - this.disable(); - }; - CMShowWhitespacePlugin.prototype.loadSettings = function () { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, _c, _d; - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - _a = this; - _c = (_b = Object).assign; - _d = [DEFAULT_SETTINGS]; - return [4 /*yield*/, this.loadData()]; - case 1: - _a.settings = _c.apply(_b, _d.concat([_e.sent()])); - return [2 /*return*/]; - } - }); - }); - }; - CMShowWhitespacePlugin.prototype.saveSettings = function (newSettings) { - if (newSettings === void 0) { newSettings = {}; } - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - this.settings = Object.assign(this.settings, newSettings); - return [4 /*yield*/, this.saveData(this.settings)]; - case 1: - _a.sent(); - this.updateHiddenChars(); - return [2 /*return*/]; - } - }); - }); - }; - return CMShowWhitespacePlugin; -}(obsidian.Plugin)); -var CMShowWhitespacePluginSettingTab = /** @class */ (function (_super) { - __extends(CMShowWhitespacePluginSettingTab, _super); - function CMShowWhitespacePluginSettingTab(app, plugin) { - var _this = _super.call(this, app, plugin) || this; - _this.plugin = plugin; - return _this; - } - CMShowWhitespacePluginSettingTab.prototype.display = function () { - var _this = this; - var _a = this, containerEl = _a.containerEl, settings = _a.plugin.settings; - containerEl.empty(); - containerEl.classList.add('plugin-cm-show-whitespace-settings'); - new obsidian.Setting(containerEl) - .setName("Toggle Show Whitespace") - .setDesc("Turns show whitespace on or off globally") - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.enabled) - .onChange(function (newValue) { newValue ? _this.plugin.enable() : _this.plugin.disable(); }); - }); - // --- - new obsidian.Setting(containerEl).setHeading().setName('Spaces'); - // --- - new obsidian.Setting(containerEl) - .setName('Show space characters') - .setDesc('Show or hide the space character. Note: This will also hide single space characters.') - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.showSpace).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showSpace: value, showSingleSpace: value })]; - case 1: - _a.sent(); - this.display(); - return [2 /*return*/]; - } - }); - }); }); - }); - var singleSpaceSetting = new obsidian.Setting(containerEl) - .setName('Show single space characters') - .setDesc('Show or hide single space characters') - .addToggle(function (toggle) { - toggle.setValue(_this.plugin.settings.showSingleSpace).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showSingleSpace: value })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }); - }); - if (!settings.showSpace) { - // if general spaces are off it doesn't make sense to change the setting - // to show or hide single spaces between words - singleSpaceSetting.setClass('plugin-cm-show-whitespace-disabled'); - } - new obsidian.Setting(containerEl) - .setName('Show trailing space characters') - .setDesc('Show or hide trailing space characters') - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.showTrailingSpace).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showTrailingSpace: value })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }); - }); - // --- - new obsidian.Setting(containerEl).setHeading().setName('Other whitespace characters'); - // --- - new obsidian.Setting(containerEl) - .setName('Show newline characters') - .setDesc('Show or hide the newline character') - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.showNewline).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showNewline: value })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }); - }); - new obsidian.Setting(containerEl) - .setName('Show strict line break characters') - .setDesc('Show or hide a different character for strict line breaks (two spaces followed by new line)') - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.showStrictLineBreak).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showStrictLineBreak: value })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }); - }); - new obsidian.Setting(containerEl) - .setName('Show tab characters') - .setDesc('Show or hide the tab character') - .addToggle(function (toggle) { - return toggle.setValue(_this.plugin.settings.showTab).onChange(function (value) { return __awaiter(_this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.plugin.saveSettings({ showTab: value })]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); }); - }); - }; - return CMShowWhitespacePluginSettingTab; -}(obsidian.PluginSettingTab)); - -module.exports = CMShowWhitespacePlugin; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsImNtLXNob3ctaW52aXNpYmxlcy5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiQ29kZU1pcnJvci5kZWZpbmVPcHRpb24oJ3Nob3dJbnZpc2libGVzJywgZmFsc2UsIChjbSwgdmFsLCBwcmV2KSA9PiB7XG4gIGxldCBDb3VudCA9IDA7XG4gIGNvbnN0IE1heGltdW0gPSBjbS5nZXRPcHRpb24oJ21heEludmlzaWJsZXMnKSB8fCAxNjtcbiAgaWYgKHByZXYgPT09IENvZGVNaXJyb3IuSW5pdClcbiAgICBwcmV2ID0gZmFsc2U7XG4gIGlmIChwcmV2ICYmICF2YWwpIHtcbiAgICBjbS5yZW1vdmVPdmVybGF5KCdpbnZpc2libGVzJyk7XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICghcHJldiAmJiB2YWwpIHtcbiAgICAvL2FkZChNYXhpbXVtKTtcbiAgICBjbS5hZGRPdmVybGF5KHtcbiAgICAgIG5hbWU6ICdpbnZpc2libGVzJyxcbiAgICAgIHRva2VuOiBmdW5jdGlvbiBuZXh0VG9rZW4oc3RyZWFtKSB7XG4gICAgICAgIGxldCBzcGFjZXMgPSAwO1xuICAgICAgICBsZXQgcGVlayA9IHN0cmVhbS5wZWVrKCkgPT09ICcgJztcbiAgICAgICAgaWYgKHBlZWspIHtcbiAgICAgICAgICB3aGlsZSAocGVlayAmJiBzcGFjZXMgPCBNYXhpbXVtKSB7XG4gICAgICAgICAgICArK3NwYWNlcztcbiAgICAgICAgICAgIHN0cmVhbS5uZXh0KCk7XG4gICAgICAgICAgICBwZWVrID0gc3RyZWFtLnBlZWsoKSA9PT0gJyAnO1xuICAgICAgICAgIH1cbiAgICAgICAgICBsZXQgcmV0ID0gJ3doaXRlc3BhY2Ugd2hpdGVzcGFjZS0nICsgc3BhY2VzO1xuICAgICAgICAgIC8qXG4gICAgICAgICAgICogc3R5bGVzIHNob3VsZCBiZSBkaWZmZXJlbnRcbiAgICAgICAgICAgKiBjb3VsZCBub3QgYmUgdHdvIHNhbWUgc3R5bGVzXG4gICAgICAgICAgICogYmVzaWRlIGJlY2F1c2Ugb2YgdGhpcyBjaGVjayBpbiBydW5tb2RlXG4gICAgICAgICAgICogZnVuY3Rpb24gaW4gYGNvZGVtaXJyb3IuanNgOlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogNjYyNDogaWYgKCFmbGF0dGVuU3BhbnMgfHwgY3VyU3R5bGUgIT0gc3R5bGUpIHt9XG4gICAgICAgICAgICovXG4gICAgICAgICAgaWYgKHNwYWNlcyA9PT0gTWF4aW11bSlcbiAgICAgICAgICAgIHJldCArPSAnIHdoaXRlc3BhY2UtcmFuZC0nICsgQ291bnQrKztcbiAgICAgICAgICByZXR1cm4gcmV0O1xuICAgICAgICB9XG4gICAgICAgIHdoaWxlICghc3RyZWFtLmVvbCgpICYmICFwZWVrKSB7XG4gICAgICAgICAgc3RyZWFtLm5leHQoKTtcbiAgICAgICAgICBwZWVrID0gc3RyZWFtLnBlZWsoKSA9PT0gJyAnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAnY20tZW9sJztcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn0pOyIsImltcG9ydCAnLi9zdHlsZXMuc2NzcydcbmltcG9ydCAnLi9jbS1zaG93LWludmlzaWJsZXMnXG5pbXBvcnQgeyBQbHVnaW4sIFBsdWdpblNldHRpbmdUYWIsIEFwcCwgU2V0dGluZyB9IGZyb20gJ29ic2lkaWFuJztcblxuaW50ZXJmYWNlIENNU2hvd1doaXRlc3BhY2VQbHVnaW5TZXR0aW5ncyB7XG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIHNob3dOZXdsaW5lOiBib29sZWFuO1xuICBzaG93VGFiOiBib29sZWFuO1xuICBzaG93U3BhY2U6IGJvb2xlYW47XG4gIHNob3dTaW5nbGVTcGFjZTogYm9vbGVhbjtcbiAgc2hvd1RyYWlsaW5nU3BhY2U6IGJvb2xlYW47XG4gIHNob3dTdHJpY3RMaW5lQnJlYWs6IGJvb2xlYW47XG59XG5cbmNvbnN0IERFRkFVTFRfU0VUVElOR1M6IENNU2hvd1doaXRlc3BhY2VQbHVnaW5TZXR0aW5ncyA9IHtcbiAgZW5hYmxlZDogdHJ1ZSxcbiAgc2hvd05ld2xpbmU6IHRydWUsXG4gIHNob3dUYWI6IHRydWUsXG4gIHNob3dTcGFjZTogdHJ1ZSxcbiAgc2hvd1NpbmdsZVNwYWNlOiB0cnVlLFxuICBzaG93VHJhaWxpbmdTcGFjZTogdHJ1ZSxcbiAgc2hvd1N0cmljdExpbmVCcmVhazogZmFsc2Vcbn07XG4gICAgXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDTVNob3dXaGl0ZXNwYWNlUGx1Z2luIGV4dGVuZHMgUGx1Z2luIHtcblxuICBzZXR0aW5nczogQ01TaG93V2hpdGVzcGFjZVBsdWdpblNldHRpbmdzO1xuXG4gIGFzeW5jIG9ubG9hZCgpIHtcbiAgICBhd2FpdCB0aGlzLmxvYWRTZXR0aW5ncygpO1xuXG4gICAgaWYgKHRoaXMuc2V0dGluZ3MuZW5hYmxlZCkge1xuICAgICAgKHRoaXMuYXBwLndvcmtzcGFjZSBhcyBhbnkpLmxheW91dFJlYWR5ID8gdGhpcy5lbmFibGUoKSA6IHRoaXMuYXBwLndvcmtzcGFjZS5vbignbGF5b3V0LXJlYWR5JywgdGhpcy5lbmFibGUpO1xuICAgIH1cblxuICAgIC8vIGFkZCB0aGUgdG9nZ2xlIG9uL29mZiBjb21tYW5kXG4gICAgdGhpcy5hZGRDb21tYW5kKHtcbiAgICAgIGlkOiAndG9nZ2xlLXNob3ctd2hpdGVzcGFjZScsXG4gICAgICBuYW1lOiAnVG9nZ2xlIE9uL09mZicsXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xuICAgICAgICAvLyBkaXNhYmxlIG9yIGVuYWJsZSBhcyBuZWNlc3NhcnlcbiAgICAgICAgdGhpcy5zZXR0aW5ncy5lbmFibGVkID8gdGhpcy5kaXNhYmxlKCkgOiB0aGlzLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRTZXR0aW5nVGFiKG5ldyBDTVNob3dXaGl0ZXNwYWNlUGx1Z2luU2V0dGluZ1RhYih0aGlzLmFwcCwgdGhpcykpO1xuICB9XG5cbiAgb251bmxvYWQoKSB7XG4gICAgdGhpcy5kaXNhYmxlKCk7XG4gIH1cblxuICBkaXNhYmxlID0gKCkgPT4ge1xuICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LnJlbW92ZSgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZScpO1xuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIHRoaXMuYXBwLndvcmtzcGFjZS5pdGVyYXRlQ29kZU1pcnJvcnMoY20gPT4gY20uc2V0T3B0aW9uKFwic2hvd0ludmlzaWJsZXNcIiwgZmFsc2UpKTtcblxuICAgIHRoaXMuc2F2ZVNldHRpbmdzKHtlbmFibGVkOmZhbHNlfSk7XG4gIH1cblxuICBlbmFibGUgPSAoKSA9PiB7XG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKCdwbHVnaW4tY20tc2hvdy13aGl0ZXNwYWNlJyk7XG5cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5yZWdpc3RlckNvZGVNaXJyb3IoY20gPT4gY20uc2V0T3B0aW9uKFwic2hvd0ludmlzaWJsZXNcIiwgdHJ1ZSkpO1xuXG4gICAgdGhpcy5zYXZlU2V0dGluZ3Moe2VuYWJsZWQ6dHJ1ZX0pO1xuICB9XG5cbiAgdXBkYXRlSGlkZGVuQ2hhcnMgPSAoKSA9PiB7XG4gICAgY29uc3QgeyBzaG93TmV3bGluZSwgc2hvd1NpbmdsZVNwYWNlLCBzaG93U3BhY2UsIHNob3dUYWIsIHNob3dUcmFpbGluZ1NwYWNlLCBzaG93U3RyaWN0TGluZUJyZWFrIH0gPSB0aGlzLnNldHRpbmdzO1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0O1xuXG4gICAgY2xhc3NMaXN0LnRvZ2dsZSgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZS1oaWRlLW5ld2xpbmUnLCAhc2hvd05ld2xpbmUpO1xuICAgIGNsYXNzTGlzdC50b2dnbGUoJ3BsdWdpbi1jbS1zaG93LXdoaXRlc3BhY2UtaGlkZS10YWInLCAhc2hvd1RhYik7XG4gICAgY2xhc3NMaXN0LnRvZ2dsZSgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZS1oaWRlLXNwYWNlJywgIXNob3dTcGFjZSk7XG4gICAgY2xhc3NMaXN0LnRvZ2dsZSgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZS1oaWRlLXNpbmdsZS1zcGFjZScsICFzaG93U2luZ2xlU3BhY2UpO1xuICAgIGNsYXNzTGlzdC50b2dnbGUoJ3BsdWdpbi1jbS1zaG93LXdoaXRlc3BhY2UtaGlkZS10cmFpbGluZy1zcGFjZScsICFzaG93VHJhaWxpbmdTcGFjZSk7XG4gICAgY2xhc3NMaXN0LnRvZ2dsZSgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZS1zaG93LXN0cmljdC1saW5lLWJyZWFrJywgc2hvd1N0cmljdExpbmVCcmVhayk7XG4gIH1cblxuICBhc3luYyBsb2FkU2V0dGluZ3MoKSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVTZXR0aW5ncyhuZXdTZXR0aW5ncyA9IHt9KSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24odGhpcy5zZXR0aW5ncywgbmV3U2V0dGluZ3MpO1xuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XG4gICAgdGhpcy51cGRhdGVIaWRkZW5DaGFycygpO1xuICB9XG59XG5cbmNsYXNzIENNU2hvd1doaXRlc3BhY2VQbHVnaW5TZXR0aW5nVGFiIGV4dGVuZHMgUGx1Z2luU2V0dGluZ1RhYiB7XG4gIHBsdWdpbjogQ01TaG93V2hpdGVzcGFjZVBsdWdpbjtcblxuICBjb25zdHJ1Y3RvcihhcHA6IEFwcCwgcGx1Z2luOiBDTVNob3dXaGl0ZXNwYWNlUGx1Z2luKSB7XG4gICAgc3VwZXIoYXBwLCBwbHVnaW4pO1xuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xuICB9XG5cbiAgZGlzcGxheSgpOiB2b2lkIHtcbiAgICBsZXQge1xuICAgICAgY29udGFpbmVyRWwsXG4gICAgICBwbHVnaW46IHsgc2V0dGluZ3MgfSxcbiAgICB9ID0gdGhpcztcblxuICAgIGNvbnRhaW5lckVsLmVtcHR5KCk7XG4gICAgY29udGFpbmVyRWwuY2xhc3NMaXN0LmFkZCgncGx1Z2luLWNtLXNob3ctd2hpdGVzcGFjZS1zZXR0aW5ncycpO1xuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZShcIlRvZ2dsZSBTaG93IFdoaXRlc3BhY2VcIilcbiAgICAgIC5zZXREZXNjKFwiVHVybnMgc2hvdyB3aGl0ZXNwYWNlIG9uIG9yIG9mZiBnbG9iYWxseVwiKVxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT5cbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmVuYWJsZWQpXG4gICAgICAgICAgLm9uQ2hhbmdlKChuZXdWYWx1ZSkgPT4geyBuZXdWYWx1ZSA/IHRoaXMucGx1Z2luLmVuYWJsZSgpIDogdGhpcy5wbHVnaW4uZGlzYWJsZSgpIH0pXG4gICAgICApO1xuICAgIFxuICAgIC8vIC0tLVxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKS5zZXRIZWFkaW5nKCkuc2V0TmFtZSgnU3BhY2VzJyk7XG4gICAgLy8gLS0tXG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdTaG93IHNwYWNlIGNoYXJhY3RlcnMnKVxuICAgICAgLnNldERlc2MoJ1Nob3cgb3IgaGlkZSB0aGUgc3BhY2UgY2hhcmFjdGVyLiBOb3RlOiBUaGlzIHdpbGwgYWxzbyBoaWRlIHNpbmdsZSBzcGFjZSBjaGFyYWN0ZXJzLicpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zaG93U3BhY2UpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncyh7IHNob3dTcGFjZTogdmFsdWUsIHNob3dTaW5nbGVTcGFjZTogdmFsdWV9KTtcbiAgICAgICAgICB0aGlzLmRpc3BsYXkoKTtcbiAgICAgICAgfSlcbiAgICApO1xuICAgIFxuICAgIGNvbnN0IHNpbmdsZVNwYWNlU2V0dGluZyA9IG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1Nob3cgc2luZ2xlIHNwYWNlIGNoYXJhY3RlcnMnKVxuICAgICAgLnNldERlc2MoJ1Nob3cgb3IgaGlkZSBzaW5nbGUgc3BhY2UgY2hhcmFjdGVycycpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+IHtcbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnNob3dTaW5nbGVTcGFjZSkub25DaGFuZ2UoYXN5bmMgKHZhbHVlKSA9PiB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wbHVnaW4uc2F2ZVNldHRpbmdzKHsgc2hvd1NpbmdsZVNwYWNlOiB2YWx1ZSB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICBpZiAoIXNldHRpbmdzLnNob3dTcGFjZSkge1xuICAgICAgLy8gaWYgZ2VuZXJhbCBzcGFjZXMgYXJlIG9mZiBpdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gY2hhbmdlIHRoZSBzZXR0aW5nXG4gICAgICAvLyB0byBzaG93IG9yIGhpZGUgc2luZ2xlIHNwYWNlcyBiZXR3ZWVuIHdvcmRzXG4gICAgICBzaW5nbGVTcGFjZVNldHRpbmcuc2V0Q2xhc3MoJ3BsdWdpbi1jbS1zaG93LXdoaXRlc3BhY2UtZGlzYWJsZWQnKTtcbiAgICB9XG5cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcbiAgICAgIC5zZXROYW1lKCdTaG93IHRyYWlsaW5nIHNwYWNlIGNoYXJhY3RlcnMnKVxuICAgICAgLnNldERlc2MoJ1Nob3cgb3IgaGlkZSB0cmFpbGluZyBzcGFjZSBjaGFyYWN0ZXJzJylcbiAgICAgIC5hZGRUb2dnbGUoKHRvZ2dsZSkgPT5cbiAgICAgICAgdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLnNob3dUcmFpbGluZ1NwYWNlKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoeyBzaG93VHJhaWxpbmdTcGFjZTogdmFsdWV9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAvLyAtLS1cbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbCkuc2V0SGVhZGluZygpLnNldE5hbWUoJ090aGVyIHdoaXRlc3BhY2UgY2hhcmFjdGVycycpO1xuICAgIC8vIC0tLVxuXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXG4gICAgICAuc2V0TmFtZSgnU2hvdyBuZXdsaW5lIGNoYXJhY3RlcnMnKVxuICAgICAgLnNldERlc2MoJ1Nob3cgb3IgaGlkZSB0aGUgbmV3bGluZSBjaGFyYWN0ZXInKVxuICAgICAgLmFkZFRvZ2dsZSgodG9nZ2xlKSA9PlxuICAgICAgICB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3Muc2hvd05ld2xpbmUpLm9uQ2hhbmdlKGFzeW5jICh2YWx1ZSkgPT4ge1xuICAgICAgICAgIGF3YWl0IHRoaXMucGx1Z2luLnNhdmVTZXR0aW5ncyh7IHNob3dOZXdsaW5lOiB2YWx1ZSB9KTtcbiAgICAgICAgfSlcbiAgICApO1xuICAgIFxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1Nob3cgc3RyaWN0IGxpbmUgYnJlYWsgY2hhcmFjdGVycycpXG4gICAgICAuc2V0RGVzYygnU2hvdyBvciBoaWRlIGEgZGlmZmVyZW50IGNoYXJhY3RlciBmb3Igc3RyaWN0IGxpbmUgYnJlYWtzICh0d28gc3BhY2VzIGZvbGxvd2VkIGJ5IG5ldyBsaW5lKScpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zaG93U3RyaWN0TGluZUJyZWFrKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoeyBzaG93U3RyaWN0TGluZUJyZWFrOiB2YWx1ZSB9KTtcbiAgICAgICAgfSlcbiAgICApO1xuICAgIFxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxuICAgICAgLnNldE5hbWUoJ1Nob3cgdGFiIGNoYXJhY3RlcnMnKVxuICAgICAgLnNldERlc2MoJ1Nob3cgb3IgaGlkZSB0aGUgdGFiIGNoYXJhY3RlcicpXG4gICAgICAuYWRkVG9nZ2xlKCh0b2dnbGUpID0+XG4gICAgICAgIHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5zaG93VGFiKS5vbkNoYW5nZShhc3luYyAodmFsdWUpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLnBsdWdpbi5zYXZlU2V0dGluZ3MoeyBzaG93VGFiOiB2YWx1ZSB9KTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJQbHVnaW4iLCJTZXR0aW5nIiwiUGx1Z2luU2V0dGluZ1RhYiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSSxhQUFhLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ25DLElBQUksYUFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjO0FBQ3pDLFNBQVMsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFlBQVksS0FBSyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUNwRixRQUFRLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztBQUMxRyxJQUFJLE9BQU8sYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFDRjtBQUNPLFNBQVMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDaEMsSUFBSSxhQUFhLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3hCLElBQUksU0FBUyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFO0FBQzNDLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQUssSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN6RixDQUFDO0FBdUNEO0FBQ08sU0FBUyxTQUFTLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsU0FBUyxFQUFFO0FBQzdELElBQUksU0FBUyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsT0FBTyxLQUFLLFlBQVksQ0FBQyxHQUFHLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxVQUFVLE9BQU8sRUFBRSxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO0FBQ2hILElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLEVBQUUsVUFBVSxPQUFPLEVBQUUsTUFBTSxFQUFFO0FBQy9ELFFBQVEsU0FBUyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUNuRyxRQUFRLFNBQVMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtBQUN0RyxRQUFRLFNBQVMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsRUFBRTtBQUN0SCxRQUFRLElBQUksQ0FBQyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUM5RSxLQUFLLENBQUMsQ0FBQztBQUNQLENBQUM7QUFDRDtBQUNPLFNBQVMsV0FBVyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUU7QUFDM0MsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3JILElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLE9BQU8sTUFBTSxLQUFLLFVBQVUsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLFdBQVcsRUFBRSxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0osSUFBSSxTQUFTLElBQUksQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLFVBQVUsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUN0RSxJQUFJLFNBQVMsSUFBSSxDQUFDLEVBQUUsRUFBRTtBQUN0QixRQUFRLElBQUksQ0FBQyxFQUFFLE1BQU0sSUFBSSxTQUFTLENBQUMsaUNBQWlDLENBQUMsQ0FBQztBQUN0RSxRQUFRLE9BQU8sQ0FBQyxFQUFFLElBQUk7QUFDdEIsWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztBQUN6SyxZQUFZLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDcEQsWUFBWSxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekIsZ0JBQWdCLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU07QUFDOUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUN4RSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0IsS0FBSyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsU0FBUztBQUNqRSxnQkFBZ0I7QUFDaEIsb0JBQW9CLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUU7QUFDaEksb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUU7QUFDMUcsb0JBQW9CLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sRUFBRTtBQUN6RixvQkFBb0IsSUFBSSxD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 diff --git a/.obsidian/plugins/cm-show-whitespace-obsidian/manifest.json b/.obsidian/plugins/cm-show-whitespace-obsidian/manifest.json deleted file mode 100644 index d6655579..00000000 --- a/.obsidian/plugins/cm-show-whitespace-obsidian/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "cm-show-whitespace-obsidian", - "name": "Show Whitespace", - "author": "death_au", - "authorUrl": "https://github.com/deathau", - "description": "Show whitespace in the editor", - "isDesktopOnly": false, - "version": "0.3.1", - "minAppVersion": "0.10.0" -} \ No newline at end of file diff --git a/.obsidian/plugins/cm-show-whitespace-obsidian/styles.css b/.obsidian/plugins/cm-show-whitespace-obsidian/styles.css deleted file mode 100644 index c551580f..00000000 --- a/.obsidian/plugins/cm-show-whitespace-obsidian/styles.css +++ /dev/null @@ -1,122 +0,0 @@ -@charset "UTF-8"; -.plugin-cm-show-whitespace-settings .plugin-cm-show-whitespace-disabled { - opacity: 0.6; -} -.plugin-cm-show-whitespace-settings .plugin-cm-show-whitespace-disabled .checkbox-container { - cursor: not-allowed; - pointer-events: none; -} - -body.plugin-cm-show-whitespace { - /* feel free to override these characters if you want ◽ */ - --spaceChar: "°"; - --trailingSpaceChar: "·"; - --singleSpaceChar: var(--spaceChar); - --tabChar: "→"; - --newlineChar: "¬"; - --strictLineBreakChar: var(--newlineChar); -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-hide-space { - --spaceChar: ""; -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-hide-tab { - --tabChar: ""; -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-hide-newline { - --newlineChar: ""; -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-hide-single-space { - --singleSpaceChar: ""; -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-hide-trailing-space { - --trailingSpaceChar: ""; -} -body.plugin-cm-show-whitespace.plugin-cm-show-whitespace-show-strict-line-break { - --strictLineBreakChar: "↲"; -} -body.plugin-cm-show-whitespace .cm-whitespace::before, -body.plugin-cm-show-whitespace .cm-tab::before, -body.plugin-cm-show-whitespace .CodeMirror-code > div > pre > span > :last-child:after, -body.plugin-cm-show-whitespace .CodeMirror-line > span > :last-child::after, -body.plugin-cm-show-whitespace [class*=cm-trailing-space] + [class*=cm-trailing-space]:last-child::after { - pointer-events: none; - color: var(--text-tag); - font-weight: bolder; -} -body.plugin-cm-show-whitespace [class*=cm-trailing-space]::before { - content: var(--trailingSpaceChar); -} -body.plugin-cm-show-whitespace .cm-tab::before { - content: var(--tabChar); -} -body.plugin-cm-show-whitespace .CodeMirror-code > div > pre > span > :last-child:after, -body.plugin-cm-show-whitespace .CodeMirror-line > span > :last-child::after { - content: var(--newlineChar); - position: unset; -} -body.plugin-cm-show-whitespace [class*=cm-trailing-space] + [class*=cm-trailing-space]:last-child::after { - content: var(--strictLineBreakChar); - position: unset; -} -body.plugin-cm-show-whitespace .cm-whitespace::before, -body.plugin-cm-show-whitespace .cm-tab::before { - position: absolute; -} -body.plugin-cm-show-whitespace .cm-s-obsidian span.cm-inline-code.cm-whitespace::before { - line-height: 2em; -} -body.plugin-cm-show-whitespace .CodeMirror-code > div:last-child > pre > span::after, -body.plugin-cm-show-whitespace .CodeMirror-code > pre:last-child > span::after { - display: none; -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-1:not([class*=cm-trailing-space-])::before { - content: var(--singleSpaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-2:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-3:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-4:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-5:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-6:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-7:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-8:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-9:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-10:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-11:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-12:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-13:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-14:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-15:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-16:not([class*=cm-trailing-space-])::before { - content: var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar) var(--spaceChar); -} -body.plugin-cm-show-whitespace .CodeMirror .cm-whitespace-1:last-of-type::before { - content: var(--trailingSpaceChar); -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data.json b/.obsidian/plugins/obsidian-git/data.json deleted file mode 100644 index 1ab6859d..00000000 --- a/.obsidian/plugins/obsidian-git/data.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "commitMessage": "vault backup: {{date}}", - "commitDateFormat": "YYYY-MM-DD HH:mm:ss", - "autoSaveInterval": 30, - "autoPullInterval": 0, - "autoPullOnBoot": false, - "disablePush": false, - "pullBeforePush": false, - "disablePopups": false, - "listChangedFilesInMessageBody": true, - "showStatusBar": true, - "updateSubmodules": false, - "gitPath": "", - "customMessageOnAutoBackup": false, - "autoBackupAfterFileChange": true, - "currentBranch": "main", - "remote": "origin" -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/data[衝突].json b/.obsidian/plugins/obsidian-git/data[衝突].json deleted file mode 100644 index 90bf6f3d..00000000 --- a/.obsidian/plugins/obsidian-git/data[衝突].json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "commitMessage": "vault backup: {{date}}", - "commitDateFormat": "YYYY-MM-DD HH:mm:ss", - "autoSaveInterval": 30, - "autoPullInterval": 0, - "autoPullOnBoot": false, - "disablePush": false, - "pullBeforePush": false, - "disablePopups": false, - "listChangedFilesInMessageBody": false, - "showStatusBar": true, - "currentBranch": "main", - "remote": "origin" -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-git/main.js b/.obsidian/plugins/obsidian-git/main.js deleted file mode 100644 index e43d9993..00000000 --- a/.obsidian/plugins/obsidian-git/main.js +++ /dev/null @@ -1,9526 +0,0 @@ -/* -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, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = 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 key of __getOwnPropNames(module2)) - if (!__hasOwnProp.call(target, key) && key !== "default") - __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || 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/simple-git/src/lib/errors/git-error.js -var require_git_error = __commonJS({ - "node_modules/simple-git/src/lib/errors/git-error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitError = void 0; - var GitError = class extends Error { - constructor(task, message) { - super(message); - this.task = task; - Object.setPrototypeOf(this, new.target.prototype); - } - }; - exports.GitError = GitError; - } -}); - -// node_modules/simple-git/src/lib/errors/git-response-error.js -var require_git_response_error = __commonJS({ - "node_modules/simple-git/src/lib/errors/git-response-error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitResponseError = void 0; - var git_error_1 = require_git_error(); - var GitResponseError = class extends git_error_1.GitError { - constructor(git, message) { - super(void 0, message || String(git)); - this.git = git; - } - }; - exports.GitResponseError = GitResponseError; - } -}); - -// node_modules/simple-git/src/lib/errors/git-construct-error.js -var require_git_construct_error = __commonJS({ - "node_modules/simple-git/src/lib/errors/git-construct-error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitConstructError = void 0; - var git_error_1 = require_git_error(); - var GitConstructError = class extends git_error_1.GitError { - constructor(config, message) { - super(void 0, message); - this.config = config; - } - }; - exports.GitConstructError = GitConstructError; - } -}); - -// node_modules/simple-git/src/lib/errors/git-plugin-error.js -var require_git_plugin_error = __commonJS({ - "node_modules/simple-git/src/lib/errors/git-plugin-error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitPluginError = void 0; - var git_error_1 = require_git_error(); - var GitPluginError = class extends git_error_1.GitError { - constructor(task, plugin, message) { - super(task, message); - this.task = task; - this.plugin = plugin; - Object.setPrototypeOf(this, new.target.prototype); - } - }; - exports.GitPluginError = GitPluginError; - } -}); - -// node_modules/simple-git/src/lib/errors/task-configuration-error.js -var require_task_configuration_error = __commonJS({ - "node_modules/simple-git/src/lib/errors/task-configuration-error.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.TaskConfigurationError = void 0; - var git_error_1 = require_git_error(); - var TaskConfigurationError = class extends git_error_1.GitError { - constructor(message) { - super(void 0, message); - } - }; - exports.TaskConfigurationError = TaskConfigurationError; - } -}); - -// 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((key) => { - createDebug[key] = env[key]; - }); - 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 debug(...args) { - if (!debug.enabled) { - return; - } - const self2 = debug; - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self2.diff = ms; - self2.prev = prevTime; - self2.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(self2, val); - args.splice(index, 1); - index--; - } - return match; - }); - createDebug.formatArgs.call(self2, args); - const logFn = self2.log || createDebug.log; - logFn.apply(self2, args); - } - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; - Object.defineProperty(debug, "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(debug); - } - return debug; - } - 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.substr(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((key) => { - return /^debug_/i.test(key); - }).reduce((obj, key) => { - const prop = key.substring(6).toLowerCase().replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - let val = process.env[key]; - 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(debug) { - debug.inspectOpts = {}; - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.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 __importDefault = 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 = __importDefault(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 exists(path3, type = exports.READABLE) { - return check(path3, (type & exports.FILE) > 0, (type & exports.FOLDER) > 0); - } - exports.exists = exists; - 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 __export2(m) { - for (var p in m) - if (!exports.hasOwnProperty(p)) - exports[p] = m[p]; - } - Object.defineProperty(exports, "__esModule", { value: true }); - __export2(require_src2()); - } -}); - -// node_modules/simple-git/src/lib/utils/util.js -var require_util = __commonJS({ - "node_modules/simple-git/src/lib/utils/util.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.delay = exports.pick = exports.bufferToString = exports.prefixedArray = exports.asNumber = exports.asStringArray = exports.asArray = exports.objectToString = exports.remove = exports.including = exports.append = exports.folderExists = exports.forEachLineWithContent = exports.toLinesWithContent = exports.last = exports.first = exports.splitOn = exports.isUserFunction = exports.asFunction = exports.NOOP = exports.NULL = void 0; - var file_exists_1 = require_dist(); - exports.NULL = "\0"; - var NOOP = () => { - }; - exports.NOOP = NOOP; - function asFunction(source) { - return typeof source === "function" ? source : exports.NOOP; - } - exports.asFunction = asFunction; - function isUserFunction(source) { - return typeof source === "function" && source !== exports.NOOP; - } - exports.isUserFunction = isUserFunction; - function splitOn(input, char) { - const index = input.indexOf(char); - if (index <= 0) { - return [input, ""]; - } - return [ - input.substr(0, index), - input.substr(index + 1) - ]; - } - exports.splitOn = splitOn; - function first(input, offset = 0) { - return isArrayLike(input) && input.length > offset ? input[offset] : void 0; - } - exports.first = first; - function last(input, offset = 0) { - if (isArrayLike(input) && input.length > offset) { - return input[input.length - 1 - offset]; - } - } - exports.last = last; - function isArrayLike(input) { - return !!(input && typeof input.length === "number"); - } - function toLinesWithContent(input, trimmed = true, separator = "\n") { - return input.split(separator).reduce((output, line) => { - const lineContent = trimmed ? line.trim() : line; - if (lineContent) { - output.push(lineContent); - } - return output; - }, []); - } - exports.toLinesWithContent = toLinesWithContent; - function forEachLineWithContent(input, callback) { - return toLinesWithContent(input, true).map((line) => callback(line)); - } - exports.forEachLineWithContent = forEachLineWithContent; - function folderExists(path3) { - return file_exists_1.exists(path3, file_exists_1.FOLDER); - } - exports.folderExists = folderExists; - function append2(target, item) { - if (Array.isArray(target)) { - if (!target.includes(item)) { - target.push(item); - } - } else { - target.add(item); - } - return item; - } - exports.append = append2; - function including(target, item) { - if (Array.isArray(target) && !target.includes(item)) { - target.push(item); - } - return target; - } - exports.including = including; - 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; - } - exports.remove = remove; - exports.objectToString = Object.prototype.toString.call.bind(Object.prototype.toString); - function asArray(source) { - return Array.isArray(source) ? source : [source]; - } - exports.asArray = asArray; - function asStringArray(source) { - return asArray(source).map(String); - } - exports.asStringArray = asStringArray; - function asNumber(source, onNaN = 0) { - if (source == null) { - return onNaN; - } - const num = parseInt(source, 10); - return isNaN(num) ? onNaN : num; - } - exports.asNumber = asNumber; - function prefixedArray(input, prefix) { - const output = []; - for (let i = 0, max = input.length; i < max; i++) { - output.push(prefix, input[i]); - } - return output; - } - exports.prefixedArray = prefixedArray; - function bufferToString(input) { - return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8"); - } - exports.bufferToString = bufferToString; - function pick(source, properties) { - return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {})); - } - exports.pick = pick; - function delay(duration = 0) { - return new Promise((done) => setTimeout(done, duration)); - } - exports.delay = delay; - } -}); - -// node_modules/simple-git/src/lib/utils/argument-filters.js -var require_argument_filters = __commonJS({ - "node_modules/simple-git/src/lib/utils/argument-filters.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.filterHasLength = exports.filterFunction = exports.filterPlainObject = exports.filterStringOrStringArray = exports.filterStringArray = exports.filterString = exports.filterPrimitives = exports.filterArray = exports.filterType = void 0; - var util_1 = require_util(); - function filterType(input, filter, def) { - if (filter(input)) { - return input; - } - return arguments.length > 2 ? def : void 0; - } - exports.filterType = filterType; - var filterArray = (input) => { - return Array.isArray(input); - }; - exports.filterArray = filterArray; - function filterPrimitives(input, omit) { - return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input)); - } - exports.filterPrimitives = filterPrimitives; - var filterString = (input) => { - return typeof input === "string"; - }; - exports.filterString = filterString; - var filterStringArray = (input) => { - return Array.isArray(input) && input.every(exports.filterString); - }; - exports.filterStringArray = filterStringArray; - var filterStringOrStringArray = (input) => { - return exports.filterString(input) || Array.isArray(input) && input.every(exports.filterString); - }; - exports.filterStringOrStringArray = filterStringOrStringArray; - function filterPlainObject(input) { - return !!input && util_1.objectToString(input) === "[object Object]"; - } - exports.filterPlainObject = filterPlainObject; - function filterFunction(input) { - return typeof input === "function"; - } - exports.filterFunction = filterFunction; - var filterHasLength = (input) => { - if (input == null || "number|boolean|function".includes(typeof input)) { - return false; - } - return Array.isArray(input) || typeof input === "string" || typeof input.length === "number"; - }; - exports.filterHasLength = filterHasLength; - } -}); - -// node_modules/simple-git/src/lib/utils/exit-codes.js -var require_exit_codes = __commonJS({ - "node_modules/simple-git/src/lib/utils/exit-codes.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.ExitCodes = void 0; - var ExitCodes; - (function(ExitCodes2) { - ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS"; - ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR"; - ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN"; - })(ExitCodes = exports.ExitCodes || (exports.ExitCodes = {})); - } -}); - -// node_modules/simple-git/src/lib/utils/git-output-streams.js -var require_git_output_streams = __commonJS({ - "node_modules/simple-git/src/lib/utils/git-output-streams.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitOutputStreams = void 0; - var GitOutputStreams = class { - constructor(stdOut, stdErr) { - this.stdOut = stdOut; - this.stdErr = stdErr; - } - asStrings() { - return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8")); - } - }; - exports.GitOutputStreams = GitOutputStreams; - } -}); - -// node_modules/simple-git/src/lib/utils/line-parser.js -var require_line_parser = __commonJS({ - "node_modules/simple-git/src/lib/utils/line-parser.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.RemoteLineParser = exports.LineParser = void 0; - var 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)); - } - }; - exports.LineParser = LineParser; - var 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); - } - } - }; - exports.RemoteLineParser = RemoteLineParser; - } -}); - -// node_modules/simple-git/src/lib/utils/simple-git-options.js -var require_simple_git_options = __commonJS({ - "node_modules/simple-git/src/lib/utils/simple-git-options.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createInstanceConfig = void 0; - var defaultOptions = { - binary: "git", - maxConcurrentProcesses: 5, - config: [] - }; - function createInstanceConfig(...options) { - const baseDir = process.cwd(); - const config = Object.assign(Object.assign({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o)); - config.baseDir = config.baseDir || baseDir; - return config; - } - exports.createInstanceConfig = createInstanceConfig; - } -}); - -// node_modules/simple-git/src/lib/utils/task-options.js -var require_task_options = __commonJS({ - "node_modules/simple-git/src/lib/utils/task-options.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.trailingFunctionArgument = exports.trailingOptionsArgument = exports.getTrailingOptions = exports.appendTaskOptions = void 0; - var argument_filters_1 = require_argument_filters(); - var util_1 = require_util(); - function appendTaskOptions(options, commands = []) { - if (!argument_filters_1.filterPlainObject(options)) { - return commands; - } - return Object.keys(options).reduce((commands2, key) => { - const value = options[key]; - if (argument_filters_1.filterPrimitives(value, ["boolean"])) { - commands2.push(key + "=" + value); - } else { - commands2.push(key); - } - return commands2; - }, commands); - } - exports.appendTaskOptions = appendTaskOptions; - 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; - } - exports.getTrailingOptions = getTrailingOptions; - function trailingArrayArgument(args) { - const hasTrailingCallback = typeof util_1.last(args) === "function"; - return argument_filters_1.filterType(util_1.last(args, hasTrailingCallback ? 1 : 0), argument_filters_1.filterArray, []); - } - function trailingOptionsArgument(args) { - const hasTrailingCallback = argument_filters_1.filterFunction(util_1.last(args)); - return argument_filters_1.filterType(util_1.last(args, hasTrailingCallback ? 1 : 0), argument_filters_1.filterPlainObject); - } - exports.trailingOptionsArgument = trailingOptionsArgument; - function trailingFunctionArgument(args, includeNoop = true) { - const callback = util_1.asFunction(util_1.last(args)); - return includeNoop || util_1.isUserFunction(callback) ? callback : void 0; - } - exports.trailingFunctionArgument = trailingFunctionArgument; - } -}); - -// node_modules/simple-git/src/lib/utils/task-parser.js -var require_task_parser = __commonJS({ - "node_modules/simple-git/src/lib/utils/task-parser.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseStringResponse = exports.callTaskParser = void 0; - var util_1 = require_util(); - function callTaskParser(parser, streams) { - return parser(streams.stdOut, streams.stdErr); - } - exports.callTaskParser = callTaskParser; - function parseStringResponse(result, parsers, ...texts) { - texts.forEach((text2) => { - for (let lines = util_1.toLinesWithContent(text2), i = 0, max = lines.length; i < max; i++) { - const line = (offset = 0) => { - if (i + offset >= max) { - return; - } - return lines[i + offset]; - }; - parsers.some(({ parse }) => parse(line, result)); - } - }); - return result; - } - exports.parseStringResponse = parseStringResponse; - } -}); - -// node_modules/simple-git/src/lib/utils/index.js -var require_utils = __commonJS({ - "node_modules/simple-git/src/lib/utils/index.js"(exports) { - "use strict"; - var __createBinding = 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 __exportStar = exports && exports.__exportStar || function(m, exports2) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) - __createBinding(exports2, m, p); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - __exportStar(require_argument_filters(), exports); - __exportStar(require_exit_codes(), exports); - __exportStar(require_git_output_streams(), exports); - __exportStar(require_line_parser(), exports); - __exportStar(require_simple_git_options(), exports); - __exportStar(require_task_options(), exports); - __exportStar(require_task_parser(), exports); - __exportStar(require_util(), exports); - } -}); - -// node_modules/simple-git/src/lib/tasks/check-is-repo.js -var require_check_is_repo = __commonJS({ - "node_modules/simple-git/src/lib/tasks/check-is-repo.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.checkIsBareRepoTask = exports.checkIsRepoRootTask = exports.checkIsRepoTask = exports.CheckRepoActions = void 0; - var utils_1 = require_utils(); - var CheckRepoActions; - (function(CheckRepoActions2) { - CheckRepoActions2["BARE"] = "bare"; - CheckRepoActions2["IN_TREE"] = "tree"; - CheckRepoActions2["IS_REPO_ROOT"] = "root"; - })(CheckRepoActions = exports.CheckRepoActions || (exports.CheckRepoActions = {})); - var onError = ({ exitCode }, error, done, fail) => { - if (exitCode === utils_1.ExitCodes.UNCLEAN && isNotRepoMessage(error)) { - return done(Buffer.from("false")); - } - fail(error); - }; - var parser = (text2) => { - return text2.trim() === "true"; - }; - function checkIsRepoTask(action) { - switch (action) { - case CheckRepoActions.BARE: - return checkIsBareRepoTask(); - case CheckRepoActions.IS_REPO_ROOT: - return checkIsRepoRootTask(); - } - const commands = ["rev-parse", "--is-inside-work-tree"]; - return { - commands, - format: "utf-8", - onError, - parser - }; - } - exports.checkIsRepoTask = checkIsRepoTask; - function checkIsRepoRootTask() { - const commands = ["rev-parse", "--git-dir"]; - return { - commands, - format: "utf-8", - onError, - parser(path3) { - return /^\.(git)?$/.test(path3.trim()); - } - }; - } - exports.checkIsRepoRootTask = checkIsRepoRootTask; - function checkIsBareRepoTask() { - const commands = ["rev-parse", "--is-bare-repository"]; - return { - commands, - format: "utf-8", - onError, - parser - }; - } - exports.checkIsBareRepoTask = checkIsBareRepoTask; - function isNotRepoMessage(error) { - return /(Not a git repository|Kein Git-Repository)/i.test(String(error)); - } - } -}); - -// node_modules/simple-git/src/lib/responses/CleanSummary.js -var require_CleanSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/CleanSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.cleanSummaryParser = exports.CleanResponse = void 0; - var utils_1 = require_utils(); - var CleanResponse = class { - constructor(dryRun) { - this.dryRun = dryRun; - this.paths = []; - this.files = []; - this.folders = []; - } - }; - exports.CleanResponse = CleanResponse; - var removalRegexp = /^[a-z]+\s*/i; - var dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i; - var isFolderRegexp = /\/$/; - function cleanSummaryParser(dryRun, text2) { - const summary = new CleanResponse(dryRun); - const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp; - utils_1.toLinesWithContent(text2).forEach((line) => { - const removed = line.replace(regexp, ""); - summary.paths.push(removed); - (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed); - }); - return summary; - } - exports.cleanSummaryParser = cleanSummaryParser; - } -}); - -// node_modules/simple-git/src/lib/tasks/task.js -var require_task = __commonJS({ - "node_modules/simple-git/src/lib/tasks/task.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isEmptyTask = exports.isBufferTask = exports.straightThroughBufferTask = exports.straightThroughStringTask = exports.configurationErrorTask = exports.adhocExecTask = exports.EMPTY_COMMANDS = void 0; - var task_configuration_error_1 = require_task_configuration_error(); - exports.EMPTY_COMMANDS = []; - function adhocExecTask(parser) { - return { - commands: exports.EMPTY_COMMANDS, - format: "empty", - parser - }; - } - exports.adhocExecTask = adhocExecTask; - function configurationErrorTask(error) { - return { - commands: exports.EMPTY_COMMANDS, - format: "empty", - parser() { - throw typeof error === "string" ? new task_configuration_error_1.TaskConfigurationError(error) : error; - } - }; - } - exports.configurationErrorTask = configurationErrorTask; - function straightThroughStringTask(commands, trimmed = false) { - return { - commands, - format: "utf-8", - parser(text2) { - return trimmed ? String(text2).trim() : text2; - } - }; - } - exports.straightThroughStringTask = straightThroughStringTask; - function straightThroughBufferTask(commands) { - return { - commands, - format: "buffer", - parser(buffer) { - return buffer; - } - }; - } - exports.straightThroughBufferTask = straightThroughBufferTask; - function isBufferTask(task) { - return task.format === "buffer"; - } - exports.isBufferTask = isBufferTask; - function isEmptyTask(task) { - return task.format === "empty" || !task.commands.length; - } - exports.isEmptyTask = isEmptyTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/clean.js -var require_clean = __commonJS({ - "node_modules/simple-git/src/lib/tasks/clean.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isCleanOptionsArray = exports.cleanTask = exports.cleanWithOptionsTask = exports.CleanOptions = exports.CONFIG_ERROR_UNKNOWN_OPTION = exports.CONFIG_ERROR_MODE_REQUIRED = exports.CONFIG_ERROR_INTERACTIVE_MODE = void 0; - var CleanSummary_1 = require_CleanSummary(); - var utils_1 = require_utils(); - var task_1 = require_task(); - exports.CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported"; - exports.CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required'; - exports.CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: "; - var CleanOptions; - (function(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"; - })(CleanOptions = exports.CleanOptions || (exports.CleanOptions = {})); - var CleanOptionValues = new Set(["i", ...utils_1.asStringArray(Object.values(CleanOptions))]); - function cleanWithOptionsTask(mode, customArgs) { - const { cleanMode, options, valid } = getCleanOptions(mode); - if (!cleanMode) { - return task_1.configurationErrorTask(exports.CONFIG_ERROR_MODE_REQUIRED); - } - if (!valid.options) { - return task_1.configurationErrorTask(exports.CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode)); - } - options.push(...customArgs); - if (options.some(isInteractiveMode)) { - return task_1.configurationErrorTask(exports.CONFIG_ERROR_INTERACTIVE_MODE); - } - return cleanTask(cleanMode, options); - } - exports.cleanWithOptionsTask = cleanWithOptionsTask; - function cleanTask(mode, customArgs) { - const commands = ["clean", `-${mode}`, ...customArgs]; - return { - commands, - format: "utf-8", - parser(text2) { - return CleanSummary_1.cleanSummaryParser(mode === CleanOptions.DRY_RUN, text2); - } - }; - } - exports.cleanTask = cleanTask; - function isCleanOptionsArray(input) { - return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test)); - } - exports.isCleanOptionsArray = isCleanOptionsArray; - 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 === CleanOptions.FORCE || cleanMode === CleanOptions.DRY_RUN; - } - 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"; - } - } -}); - -// node_modules/simple-git/src/lib/responses/ConfigList.js -var require_ConfigList = __commonJS({ - "node_modules/simple-git/src/lib/responses/ConfigList.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.configGetParser = exports.configListParser = exports.ConfigList = void 0; - var utils_1 = require_utils(); - var ConfigList = class { - constructor() { - this.files = []; - this.values = 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 = utils_1.last(this.files); - this.values[file] = latest ? Object.create(this.values[latest]) : {}; - this.files.push(file); - } - return this.values[file]; - } - addValue(file, key, value) { - const values = this.addFile(file); - if (!values.hasOwnProperty(key)) { - values[key] = value; - } else if (Array.isArray(values[key])) { - values[key].push(value); - } else { - values[key] = [values[key], value]; - } - this._all = void 0; - } - }; - exports.ConfigList = ConfigList; - function configListParser(text2) { - const config = new ConfigList(); - for (const item of configParser(text2)) { - config.addValue(item.file, String(item.key), item.value); - } - return config; - } - exports.configListParser = configListParser; - function configGetParser(text2, key) { - let value = null; - const values = []; - const scopes = new Map(); - for (const item of configParser(text2, key)) { - if (item.key !== key) { - continue; - } - values.push(value = item.value); - if (!scopes.has(item.file)) { - scopes.set(item.file, []); - } - scopes.get(item.file).push(value); - } - return { - key, - paths: Array.from(scopes.keys()), - scopes, - value, - values - }; - } - exports.configGetParser = configGetParser; - 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 key = requestedKey; - if (value.includes("\n")) { - const line = utils_1.splitOn(value, "\n"); - key = line[0]; - value = line[1]; - } - yield { file, key, value }; - } - } - } -}); - -// node_modules/simple-git/src/lib/tasks/config.js -var require_config = __commonJS({ - "node_modules/simple-git/src/lib/tasks/config.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitConfigScope = void 0; - var ConfigList_1 = require_ConfigList(); - var utils_1 = require_utils(); - var GitConfigScope; - (function(GitConfigScope2) { - GitConfigScope2["system"] = "system"; - GitConfigScope2["global"] = "global"; - GitConfigScope2["local"] = "local"; - GitConfigScope2["worktree"] = "worktree"; - })(GitConfigScope = exports.GitConfigScope || (exports.GitConfigScope = {})); - function asConfigScope(scope, fallback) { - if (typeof scope === "string" && GitConfigScope.hasOwnProperty(scope)) { - return scope; - } - return fallback; - } - function addConfigTask(key, value, append2, scope) { - const commands = ["config", `--${scope}`]; - if (append2) { - commands.push("--add"); - } - commands.push(key, value); - return { - commands, - format: "utf-8", - parser(text2) { - return text2; - } - }; - } - function getConfigTask(key, scope) { - const commands = ["config", "--null", "--show-origin", "--get-all", key]; - if (scope) { - commands.splice(1, 0, `--${scope}`); - } - return { - commands, - format: "utf-8", - parser(text2) { - return ConfigList_1.configGetParser(text2, key); - } - }; - } - function listConfigTask(scope) { - const commands = ["config", "--list", "--show-origin", "--null"]; - if (scope) { - commands.push(`--${scope}`); - } - return { - commands, - format: "utf-8", - parser(text2) { - return ConfigList_1.configListParser(text2); - } - }; - } - function default_1() { - return { - addConfig(key, value, ...rest) { - return this._runTask(addConfigTask(key, value, rest[0] === true, asConfigScope(rest[1], GitConfigScope.local)), utils_1.trailingFunctionArgument(arguments)); - }, - getConfig(key, scope) { - return this._runTask(getConfigTask(key, asConfigScope(scope, void 0)), utils_1.trailingFunctionArgument(arguments)); - }, - listConfig(...rest) { - return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), utils_1.trailingFunctionArgument(arguments)); - } - }; - } - exports.default = default_1; - } -}); - -// node_modules/simple-git/src/lib/tasks/grep.js -var require_grep = __commonJS({ - "node_modules/simple-git/src/lib/tasks/grep.js"(exports) { - "use strict"; - var _a; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.grepQueryBuilder = void 0; - var utils_1 = require_utils(); - var task_1 = require_task(); - var disallowedOptions = ["-h"]; - var Query = Symbol("grepQuery"); - var 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", "(", ...utils_1.prefixedArray(and, "-e"), ")"); - return this; - } - param(...param) { - this[Query].push(...utils_1.prefixedArray(param, "-e")); - return this; - } - }; - function grepQueryBuilder(...params) { - return new GrepQuery().param(...params); - } - exports.grepQueryBuilder = grepQueryBuilder; - function parseGrep(grep) { - const paths = new Set(); - const results = {}; - utils_1.forEachLineWithContent(grep, (input) => { - const [path3, line, preview] = input.split(utils_1.NULL); - paths.add(path3); - (results[path3] = results[path3] || []).push({ - line: utils_1.asNumber(line), - path: path3, - preview - }); - }); - return { - paths, - results - }; - } - function default_1() { - return { - grep(searchTerm) { - const then = utils_1.trailingFunctionArgument(arguments); - const options = utils_1.getTrailingOptions(arguments); - for (const option of disallowedOptions) { - if (options.includes(option)) { - return this._runTask(task_1.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); - } - }; - } - exports.default = default_1; - } -}); - -// node_modules/simple-git/src/lib/tasks/reset.js -var require_reset = __commonJS({ - "node_modules/simple-git/src/lib/tasks/reset.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.getResetMode = exports.resetTask = exports.ResetMode = void 0; - var task_1 = require_task(); - var ResetMode; - (function(ResetMode2) { - ResetMode2["MIXED"] = "mixed"; - ResetMode2["SOFT"] = "soft"; - ResetMode2["HARD"] = "hard"; - ResetMode2["MERGE"] = "merge"; - ResetMode2["KEEP"] = "keep"; - })(ResetMode = exports.ResetMode || (exports.ResetMode = {})); - var ResetModes = Array.from(Object.values(ResetMode)); - function resetTask(mode, customArgs) { - const commands = ["reset"]; - if (isValidResetMode(mode)) { - commands.push(`--${mode}`); - } - commands.push(...customArgs); - return task_1.straightThroughStringTask(commands); - } - exports.resetTask = resetTask; - function getResetMode(mode) { - if (isValidResetMode(mode)) { - return mode; - } - switch (typeof mode) { - case "string": - case "undefined": - return ResetMode.SOFT; - } - return; - } - exports.getResetMode = getResetMode; - function isValidResetMode(mode) { - return ResetModes.includes(mode); - } - } -}); - -// node_modules/simple-git/src/lib/api.js -var require_api = __commonJS({ - "node_modules/simple-git/src/lib/api.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - var git_construct_error_1 = require_git_construct_error(); - var git_error_1 = require_git_error(); - var git_plugin_error_1 = require_git_plugin_error(); - var git_response_error_1 = require_git_response_error(); - var task_configuration_error_1 = require_task_configuration_error(); - var check_is_repo_1 = require_check_is_repo(); - var clean_1 = require_clean(); - var config_1 = require_config(); - var grep_1 = require_grep(); - var reset_1 = require_reset(); - var api = { - CheckRepoActions: check_is_repo_1.CheckRepoActions, - CleanOptions: clean_1.CleanOptions, - GitConfigScope: config_1.GitConfigScope, - GitConstructError: git_construct_error_1.GitConstructError, - GitError: git_error_1.GitError, - GitPluginError: git_plugin_error_1.GitPluginError, - GitResponseError: git_response_error_1.GitResponseError, - ResetMode: reset_1.ResetMode, - TaskConfigurationError: task_configuration_error_1.TaskConfigurationError, - grepQueryBuilder: grep_1.grepQueryBuilder - }; - exports.default = api; - } -}); - -// node_modules/simple-git/src/lib/plugins/command-config-prefixing-plugin.js -var require_command_config_prefixing_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/command-config-prefixing-plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.commandConfigPrefixingPlugin = void 0; - var utils_1 = require_utils(); - function commandConfigPrefixingPlugin(configuration) { - const prefix = utils_1.prefixedArray(configuration, "-c"); - return { - type: "spawn.args", - action(data) { - return [...prefix, ...data]; - } - }; - } - exports.commandConfigPrefixingPlugin = commandConfigPrefixingPlugin; - } -}); - -// 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 deferred() { - 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 = deferred; - exports.createDeferred = deferred; - exports.default = deferred; - } -}); - -// node_modules/simple-git/src/lib/plugins/completion-detection.plugin.js -var require_completion_detection_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/completion-detection.plugin.js"(exports) { - "use strict"; - var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.completionDetectionPlugin = void 0; - var promise_deferred_1 = require_dist2(); - var utils_1 = require_utils(); - var never = promise_deferred_1.default().promise; - function completionDetectionPlugin({ onClose = true, onExit = 50 } = {}) { - function createEvents() { - let exitCode = -1; - const events = { - close: promise_deferred_1.default(), - closeTimeout: promise_deferred_1.default(), - exit: promise_deferred_1.default(), - exitTimeout: promise_deferred_1.default() - }; - 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(() => utils_1.delay(flag))).then(timeout.done); - } - return { - type: "spawn.after", - action(_data, { spawned, close }) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const events = createEvents(); - let deferClose = true; - let quickClose = () => void (deferClose = false); - (_a = spawned.stdout) === null || _a === void 0 ? void 0 : _a.on("data", quickClose); - (_b = spawned.stderr) === null || _b === void 0 ? 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 utils_1.delay(50); - } - close(events.exitCode); - } catch (err) { - close(events.exitCode, err); - } - }); - } - }; - } - exports.completionDetectionPlugin = completionDetectionPlugin; - } -}); - -// node_modules/simple-git/src/lib/plugins/error-detection.plugin.js -var require_error_detection_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/error-detection.plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.errorDetectionPlugin = exports.errorDetectionHandler = void 0; - var git_error_1 = require_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); - }; - } - exports.errorDetectionHandler = errorDetectionHandler; - 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 git_error_1.GitError(void 0, error.toString("utf-8")) }; - } - return { - error - }; - } - }; - } - exports.errorDetectionPlugin = errorDetectionPlugin; - } -}); - -// node_modules/simple-git/src/lib/plugins/plugin-store.js -var require_plugin_store = __commonJS({ - "node_modules/simple-git/src/lib/plugins/plugin-store.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.PluginStore = void 0; - var utils_1 = require_utils(); - var PluginStore = class { - constructor() { - this.plugins = new Set(); - } - add(plugin) { - const plugins = []; - utils_1.asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(utils_1.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; - } - }; - exports.PluginStore = PluginStore; - } -}); - -// node_modules/simple-git/src/lib/plugins/progress-monitor-plugin.js -var require_progress_monitor_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/progress-monitor-plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.progressMonitorPlugin = void 0; - var utils_1 = require_utils(); - function progressMonitorPlugin(progress) { - const progressCommand = "--progress"; - const progressMethods = ["checkout", "clone", "fetch", "pull", "push"]; - const onProgress = { - type: "spawn.after", - action(_data, context) { - var _a; - if (!context.commands.includes(progressCommand)) { - return; - } - (_a = context.spawned.stderr) === null || _a === void 0 ? void 0 : _a.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: utils_1.asNumber(message[2]), - processed: utils_1.asNumber(message[3]), - total: utils_1.asNumber(message[4]) - }); - }); - } - }; - const onArgs = { - type: "spawn.args", - action(args, context) { - if (!progressMethods.includes(context.method)) { - return args; - } - return utils_1.including(args, progressCommand); - } - }; - return [onArgs, onProgress]; - } - exports.progressMonitorPlugin = progressMonitorPlugin; - function progressEventStage(input) { - return String(input.toLowerCase().split(" ", 1)) || "unknown"; - } - } -}); - -// node_modules/simple-git/src/lib/plugins/simple-git-plugin.js -var require_simple_git_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/simple-git-plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - } -}); - -// node_modules/simple-git/src/lib/plugins/spawn-options-plugin.js -var require_spawn_options_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/spawn-options-plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.spawnOptionsPlugin = void 0; - var utils_1 = require_utils(); - function spawnOptionsPlugin(spawnOptions) { - const options = utils_1.pick(spawnOptions, ["uid", "gid"]); - return { - type: "spawn.options", - action(data) { - return Object.assign(Object.assign({}, options), data); - } - }; - } - exports.spawnOptionsPlugin = spawnOptionsPlugin; - } -}); - -// node_modules/simple-git/src/lib/plugins/timout-plugin.js -var require_timout_plugin = __commonJS({ - "node_modules/simple-git/src/lib/plugins/timout-plugin.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.timeoutPlugin = void 0; - var git_plugin_error_1 = require_git_plugin_error(); - function timeoutPlugin({ block }) { - if (block > 0) { - return { - type: "spawn.after", - action(_data, context) { - var _a, _b; - let timeout; - function wait3() { - timeout && clearTimeout(timeout); - timeout = setTimeout(kill, block); - } - function stop() { - var _a2, _b2; - (_a2 = context.spawned.stdout) === null || _a2 === void 0 ? void 0 : _a2.off("data", wait3); - (_b2 = context.spawned.stderr) === null || _b2 === void 0 ? void 0 : _b2.off("data", wait3); - context.spawned.off("exit", stop); - context.spawned.off("close", stop); - } - function kill() { - stop(); - context.kill(new git_plugin_error_1.GitPluginError(void 0, "timeout", `block timeout reached`)); - } - (_a = context.spawned.stdout) === null || _a === void 0 ? void 0 : _a.on("data", wait3); - (_b = context.spawned.stderr) === null || _b === void 0 ? void 0 : _b.on("data", wait3); - context.spawned.on("exit", stop); - context.spawned.on("close", stop); - wait3(); - } - }; - } - } - exports.timeoutPlugin = timeoutPlugin; - } -}); - -// node_modules/simple-git/src/lib/plugins/index.js -var require_plugins = __commonJS({ - "node_modules/simple-git/src/lib/plugins/index.js"(exports) { - "use strict"; - var __createBinding = 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 __exportStar = exports && exports.__exportStar || function(m, exports2) { - for (var p in m) - if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports2, p)) - __createBinding(exports2, m, p); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - __exportStar(require_command_config_prefixing_plugin(), exports); - __exportStar(require_completion_detection_plugin(), exports); - __exportStar(require_error_detection_plugin(), exports); - __exportStar(require_plugin_store(), exports); - __exportStar(require_progress_monitor_plugin(), exports); - __exportStar(require_simple_git_plugin(), exports); - __exportStar(require_spawn_options_plugin(), exports); - __exportStar(require_timout_plugin(), exports); - } -}); - -// node_modules/simple-git/src/lib/git-logger.js -var require_git_logger = __commonJS({ - "node_modules/simple-git/src/lib/git-logger.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitLogger = exports.createLogger = void 0; - var debug_1 = require_src(); - var utils_1 = require_utils(); - debug_1.default.formatters.L = (value) => String(utils_1.filterHasLength(value) ? value.length : "-"); - debug_1.default.formatters.B = (value) => { - if (Buffer.isBuffer(value)) { - return value.toString("utf8"); - } - return utils_1.objectToString(value); - }; - function createLog() { - return debug_1.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 key = childLoggerName(utils_1.filterType(verbose, utils_1.filterString), debugDebugger, infoDebugger); - return step(initialStep); - function sibling(name, initial) { - return utils_1.append(spawned, createLogger(label, key.replace(/^[^:]+/, name), initial, infoDebugger)); - } - function step(phase) { - const stepPrefix = phase && `[${phase}]` || ""; - const debug = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || utils_1.NOOP; - const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug); - return Object.assign(debugDebugger ? debug : info, { - label, - sibling, - info, - step - }); - } - } - exports.createLogger = createLogger; - var GitLogger = class { - constructor(_out = createLog()) { - this._out = _out; - this.error = prefixedLogger(_out, "[ERROR]"); - this.warn = prefixedLogger(_out, "[WARN]"); - } - silent(silence = false) { - if (silence !== this._out.enabled) { - return; - } - const { namespace } = this._out; - const env = (process.env.DEBUG || "").split(",").filter((s) => !!s); - const hasOn = env.includes(namespace); - const hasOff = env.includes(`-${namespace}`); - if (!silence) { - if (hasOff) { - utils_1.remove(env, `-${namespace}`); - } else { - env.push(namespace); - } - } else { - if (hasOn) { - utils_1.remove(env, namespace); - } else { - env.push(`-${namespace}`); - } - } - debug_1.default.enable(env.join(",")); - } - }; - exports.GitLogger = GitLogger; - } -}); - -// node_modules/simple-git/src/lib/runners/tasks-pending-queue.js -var require_tasks_pending_queue = __commonJS({ - "node_modules/simple-git/src/lib/runners/tasks-pending-queue.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.TasksPendingQueue = void 0; - var git_error_1 = require_git_error(); - var git_logger_1 = require_git_logger(); - var TasksPendingQueue = class { - constructor(logLabel = "GitExecutor") { - this.logLabel = logLabel; - this._queue = new Map(); - } - withProgress(task) { - return this._queue.get(task); - } - createProgress(task) { - const name = TasksPendingQueue.getName(task.commands[0]); - const logger = git_logger_1.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 git_error_1.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}`; - } - }; - exports.TasksPendingQueue = TasksPendingQueue; - TasksPendingQueue.counter = 0; - } -}); - -// node_modules/simple-git/src/lib/runners/git-executor-chain.js -var require_git_executor_chain = __commonJS({ - "node_modules/simple-git/src/lib/runners/git-executor-chain.js"(exports) { - "use strict"; - var __awaiter = exports && exports.__awaiter || function(thisArg, _arguments, P, generator) { - function adopt(value) { - return value instanceof P ? value : new P(function(resolve) { - resolve(value); - }); - } - return new (P || (P = Promise))(function(resolve, reject) { - function fulfilled(value) { - try { - step(generator.next(value)); - } catch (e) { - reject(e); - } - } - function rejected(value) { - try { - step(generator["throw"](value)); - } catch (e) { - reject(e); - } - } - function step(result) { - result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); - } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); - }; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitExecutorChain = void 0; - var child_process_1 = require("child_process"); - var git_error_1 = require_git_error(); - var task_1 = require_task(); - var utils_1 = require_utils(); - var tasks_pending_queue_1 = require_tasks_pending_queue(); - var GitExecutorChain = class { - constructor(_executor, _scheduler, _plugins) { - this._executor = _executor; - this._scheduler = _scheduler; - this._plugins = _plugins; - this._chain = Promise.resolve(); - this._queue = new tasks_pending_queue_1.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 __awaiter(this, void 0, void 0, function* () { - const onScheduleComplete = yield this._scheduler.next(); - const onQueueComplete = () => this._queue.complete(task); - try { - const { logger } = this._queue.attempt(task); - return yield task_1.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 git_error_1.GitError ? Object.assign(e, { task }) : new git_error_1.GitError(task, e && String(e)); - this._chain = Promise.resolve(); - this._queue.fatal(gitError); - return gitError; - } - attemptRemoteTask(task, logger) { - return __awaiter(this, void 0, void 0, 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 (task_1.isBufferTask(task)) { - return utils_1.callTaskParser(task.parser, outputStreams); - } - return utils_1.callTaskParser(task.parser, outputStreams.asStrings()); - }); - } - attemptEmptyTask(task, logger) { - return __awaiter(this, void 0, void 0, 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 }, Object.assign(Object.assign({}, 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`, utils_1.objectToString(newStdOut)); - done(new utils_1.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 utils_1.GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr))); - }); - } - gitResponse(task, command, args, outputHandler, logger) { - return __awaiter(this, void 0, void 0, 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 = child_process_1.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, Object.assign(Object.assign({}, 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"); - } - })); - }); - }); - } - }; - exports.GitExecutorChain = GitExecutorChain; - function pluginContext(task, commands) { - return { - method: utils_1.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); - }; - } - } -}); - -// node_modules/simple-git/src/lib/runners/git-executor.js -var require_git_executor = __commonJS({ - "node_modules/simple-git/src/lib/runners/git-executor.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.GitExecutor = void 0; - var git_executor_chain_1 = require_git_executor_chain(); - var GitExecutor = class { - constructor(binary = "git", cwd, _scheduler, _plugins) { - this.binary = binary; - this.cwd = cwd; - this._scheduler = _scheduler; - this._plugins = _plugins; - this._chain = new git_executor_chain_1.GitExecutorChain(this, this._scheduler, this._plugins); - } - chain() { - return new git_executor_chain_1.GitExecutorChain(this, this._scheduler, this._plugins); - } - push(task) { - return this._chain.push(task); - } - }; - exports.GitExecutor = GitExecutor; - } -}); - -// node_modules/simple-git/src/lib/task-callback.js -var require_task_callback = __commonJS({ - "node_modules/simple-git/src/lib/task-callback.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.taskCallback = void 0; - var git_response_error_1 = require_git_response_error(); - var utils_1 = require_utils(); - function taskCallback(task, response, callback = utils_1.NOOP) { - const onSuccess = (data) => { - callback(null, data); - }; - const onError = (err) => { - if ((err === null || err === void 0 ? void 0 : err.task) === task) { - callback(err instanceof git_response_error_1.GitResponseError ? addDeprecationNoticeToError(err) : err, void 0); - } - }; - response.then(onSuccess, onError); - } - exports.taskCallback = taskCallback; - 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 = utils_1.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; - } - } - } -}); - -// node_modules/simple-git/src/lib/tasks/change-working-directory.js -var require_change_working_directory = __commonJS({ - "node_modules/simple-git/src/lib/tasks/change-working-directory.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.changeWorkingDirectoryTask = void 0; - var utils_1 = require_utils(); - var task_1 = require_task(); - function changeWorkingDirectoryTask(directory, root) { - return task_1.adhocExecTask((instance4) => { - if (!utils_1.folderExists(directory)) { - throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`); - } - return (root || instance4).cwd = directory; - }); - } - exports.changeWorkingDirectoryTask = changeWorkingDirectoryTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/hash-object.js -var require_hash_object = __commonJS({ - "node_modules/simple-git/src/lib/tasks/hash-object.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.hashObjectTask = void 0; - var task_1 = require_task(); - function hashObjectTask(filePath, write) { - const commands = ["hash-object", filePath]; - if (write) { - commands.push("-w"); - } - return task_1.straightThroughStringTask(commands, true); - } - exports.hashObjectTask = hashObjectTask; - } -}); - -// node_modules/simple-git/src/lib/responses/InitSummary.js -var require_InitSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/InitSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseInit = exports.InitSummary = void 0; - var InitSummary = class { - constructor(bare, path3, existing, gitDir) { - this.bare = bare; - this.path = path3; - this.existing = existing; - this.gitDir = gitDir; - } - }; - exports.InitSummary = InitSummary; - var initResponseRegex = /^Init.+ repository in (.+)$/; - var reInitResponseRegex = /^Rein.+ in (.+)$/; - 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); - } - exports.parseInit = parseInit; - } -}); - -// node_modules/simple-git/src/lib/tasks/init.js -var require_init = __commonJS({ - "node_modules/simple-git/src/lib/tasks/init.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.initTask = void 0; - var InitSummary_1 = require_InitSummary(); - var bareCommand = "--bare"; - 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 InitSummary_1.parseInit(commands.includes("--bare"), path3, text2); - } - }; - } - exports.initTask = initTask; - } -}); - -// node_modules/simple-git/src/lib/responses/DiffSummary.js -var require_DiffSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/DiffSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.DiffSummary = void 0; - var DiffSummary = class { - constructor() { - this.changed = 0; - this.deletions = 0; - this.insertions = 0; - this.files = []; - } - }; - exports.DiffSummary = DiffSummary; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-diff-summary.js -var require_parse_diff_summary = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-diff-summary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseDiffResult = void 0; - var DiffSummary_1 = require_DiffSummary(); - function parseDiffResult(stdOut) { - const lines = stdOut.trim().split("\n"); - const status = new DiffSummary_1.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; - } - exports.parseDiffResult = parseDiffResult; - 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, key, value) { - const match = /([a-z]+?)s?\b/.exec(key); - if (!match || !statusUpdate[match[1]]) { - return; - } - statusUpdate[match[1]](status, value); - } - var statusUpdate = { - file(status, value) { - status.changed = value; - }, - deletion(status, value) { - status.deletions = value; - }, - insertion(status, value) { - status.insertions = 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; - } - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js -var require_parse_list_log_summary = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-list-log-summary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.createListLogSummaryParser = exports.SPLITTER = exports.COMMIT_BOUNDARY = exports.START_BOUNDARY = void 0; - var utils_1 = require_utils(); - var parse_diff_summary_1 = require_parse_diff_summary(); - exports.START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 "; - exports.COMMIT_BOUNDARY = " \xF2\xF2"; - exports.SPLITTER = " \xF2 "; - var defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"]; - function lineBuilder(tokens, fields) { - return fields.reduce((line, field, index) => { - line[field] = tokens[index] || ""; - return line; - }, Object.create({ diff: null })); - } - function createListLogSummaryParser(splitter = exports.SPLITTER, fields = defaultFieldNames) { - return function(stdOut) { - const all = utils_1.toLinesWithContent(stdOut, true, exports.START_BOUNDARY).map(function(item) { - const lineDetail = item.trim().split(exports.COMMIT_BOUNDARY); - const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields); - if (lineDetail.length > 1 && !!lineDetail[1].trim()) { - listLogLine.diff = parse_diff_summary_1.parseDiffResult(lineDetail[1]); - } - return listLogLine; - }); - return { - all, - latest: all.length && all[0] || null, - total: all.length - }; - }; - } - exports.createListLogSummaryParser = createListLogSummaryParser; - } -}); - -// node_modules/simple-git/src/lib/tasks/log.js -var require_log = __commonJS({ - "node_modules/simple-git/src/lib/tasks/log.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.logTask = exports.parseLogOptions = void 0; - var parse_list_log_summary_1 = require_parse_list_log_summary(); - var utils_1 = require_utils(); - var task_1 = require_task(); - var excludeOptions; - (function(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"; - })(excludeOptions || (excludeOptions = {})); - 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) { - const output = Object.assign({}, input); - Object.keys(input).forEach((key) => { - if (key in excludeOptions) { - delete output[key]; - } - }); - return output; - } - function parseLogOptions(opt = {}, customArgs = []) { - const splitter = opt.splitter || parse_list_log_summary_1.SPLITTER; - const 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:${parse_list_log_summary_1.START_BOUNDARY}${formatStr}${parse_list_log_summary_1.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 (opt.file) { - suffix.push("--follow", opt.file); - } - utils_1.appendTaskOptions(userOptions(opt), command); - return { - fields, - splitter, - commands: [ - ...command, - ...suffix - ] - }; - } - exports.parseLogOptions = parseLogOptions; - function logTask(splitter, fields, customArgs) { - return { - commands: ["log", ...customArgs], - format: "utf-8", - parser: parse_list_log_summary_1.createListLogSummaryParser(splitter, fields) - }; - } - exports.logTask = logTask; - function default_1() { - return { - log(...rest) { - const next = utils_1.trailingFunctionArgument(arguments); - const task = rejectDeprecatedSignatures(...rest) || createLogTask(parseLogOptions(utils_1.trailingOptionsArgument(arguments), utils_1.filterType(arguments[0], utils_1.filterArray))); - return this._runTask(task, next); - } - }; - function createLogTask(options) { - return logTask(options.splitter, options.fields, options.commands); - } - function rejectDeprecatedSignatures(from, to) { - return utils_1.filterString(from) && utils_1.filterString(to) && task_1.configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`); - } - } - exports.default = default_1; - } -}); - -// node_modules/simple-git/src/lib/responses/MergeSummary.js -var require_MergeSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/MergeSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.MergeSummaryDetail = exports.MergeSummaryConflict = void 0; - var MergeSummaryConflict = class { - constructor(reason, file = null, meta) { - this.reason = reason; - this.file = file; - this.meta = meta; - } - toString() { - return `${this.file}:${this.reason}`; - } - }; - exports.MergeSummaryConflict = MergeSummaryConflict; - var 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"; - } - }; - exports.MergeSummaryDetail = MergeSummaryDetail; - } -}); - -// node_modules/simple-git/src/lib/responses/PullSummary.js -var require_PullSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/PullSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.PullSummary = void 0; - var PullSummary = class { - constructor() { - this.remoteMessages = { - all: [] - }; - this.created = []; - this.deleted = []; - this.files = []; - this.deletions = {}; - this.insertions = {}; - this.summary = { - changes: 0, - deletions: 0, - insertions: 0 - }; - } - }; - exports.PullSummary = PullSummary; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-remote-objects.js -var require_parse_remote_objects = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-remote-objects.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.remoteMessagesObjectParsers = void 0; - var utils_1 = require_utils(); - 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: utils_1.asNumber(count && count[1] || "0"), - delta: utils_1.asNumber(delta && delta[1] || "0") - }; - } - exports.remoteMessagesObjectParsers = [ - new utils_1.RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => { - const key = action.toLowerCase(); - const enumeration = objectEnumerationResult(result.remoteMessages); - Object.assign(enumeration, { [key]: utils_1.asNumber(count) }); - }), - new utils_1.RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: \d+% \(\d+\/(\d+)\),/i, (result, [action, count]) => { - const key = action.toLowerCase(); - const enumeration = objectEnumerationResult(result.remoteMessages); - Object.assign(enumeration, { [key]: utils_1.asNumber(count) }); - }), - new utils_1.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 = utils_1.asNumber(packReused); - }) - ]; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-remote-messages.js -var require_parse_remote_messages = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-remote-messages.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.RemoteMessageSummary = exports.parseRemoteMessages = void 0; - var utils_1 = require_utils(); - var parse_remote_objects_1 = require_parse_remote_objects(); - var parsers = [ - new utils_1.RemoteLineParser(/^remote:\s*(.+)$/, (result, [text2]) => { - result.remoteMessages.all.push(text2.trim()); - return false; - }), - ...parse_remote_objects_1.remoteMessagesObjectParsers, - new utils_1.RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => { - result.remoteMessages.pullRequestUrl = pullRequestUrl; - }), - new utils_1.RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => { - result.remoteMessages.vulnerabilities = { - count: utils_1.asNumber(count), - summary, - url - }; - }) - ]; - function parseRemoteMessages(_stdOut, stdErr) { - return utils_1.parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers, stdErr); - } - exports.parseRemoteMessages = parseRemoteMessages; - var RemoteMessageSummary = class { - constructor() { - this.all = []; - } - }; - exports.RemoteMessageSummary = RemoteMessageSummary; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-pull.js -var require_parse_pull = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-pull.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parsePullResult = exports.parsePullDetail = void 0; - var PullSummary_1 = require_PullSummary(); - var utils_1 = require_utils(); - var parse_remote_messages_1 = require_parse_remote_messages(); - var FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/; - var SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/; - var ACTION_REGEX = /^(create|delete) mode \d+ (.+)/; - var parsers = [ - new utils_1.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 utils_1.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 utils_1.LineParser(ACTION_REGEX, (result, [action, file]) => { - utils_1.append(result.files, file); - utils_1.append(action === "create" ? result.created : result.deleted, file); - }) - ]; - var parsePullDetail = (stdOut, stdErr) => { - return utils_1.parseStringResponse(new PullSummary_1.PullSummary(), parsers, stdOut, stdErr); - }; - exports.parsePullDetail = parsePullDetail; - var parsePullResult = (stdOut, stdErr) => { - return Object.assign(new PullSummary_1.PullSummary(), exports.parsePullDetail(stdOut, stdErr), parse_remote_messages_1.parseRemoteMessages(stdOut, stdErr)); - }; - exports.parsePullResult = parsePullResult; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-merge.js -var require_parse_merge = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-merge.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseMergeDetail = exports.parseMergeResult = void 0; - var MergeSummary_1 = require_MergeSummary(); - var utils_1 = require_utils(); - var parse_pull_1 = require_parse_pull(); - var parsers = [ - new utils_1.LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => { - summary.merges.push(autoMerge); - }), - new utils_1.LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => { - summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, file)); - }), - new utils_1.LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => { - summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, file, { deleteRef })); - }), - new utils_1.LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => { - summary.conflicts.push(new MergeSummary_1.MergeSummaryConflict(reason, null)); - }), - new utils_1.LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => { - summary.result = result; - }) - ]; - var parseMergeResult = (stdOut, stdErr) => { - return Object.assign(exports.parseMergeDetail(stdOut, stdErr), parse_pull_1.parsePullResult(stdOut, stdErr)); - }; - exports.parseMergeResult = parseMergeResult; - var parseMergeDetail = (stdOut) => { - return utils_1.parseStringResponse(new MergeSummary_1.MergeSummaryDetail(), parsers, stdOut); - }; - exports.parseMergeDetail = parseMergeDetail; - } -}); - -// node_modules/simple-git/src/lib/tasks/merge.js -var require_merge = __commonJS({ - "node_modules/simple-git/src/lib/tasks/merge.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.mergeTask = void 0; - var git_response_error_1 = require_git_response_error(); - var parse_merge_1 = require_parse_merge(); - var task_1 = require_task(); - function mergeTask(customArgs) { - if (!customArgs.length) { - return task_1.configurationErrorTask("Git.merge requires at least one option"); - } - return { - commands: ["merge", ...customArgs], - format: "utf-8", - parser(stdOut, stdErr) { - const merge = parse_merge_1.parseMergeResult(stdOut, stdErr); - if (merge.failed) { - throw new git_response_error_1.GitResponseError(merge); - } - return merge; - } - }; - } - exports.mergeTask = mergeTask; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-push.js -var require_parse_push = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-push.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parsePushDetail = exports.parsePushResult = void 0; - var utils_1 = require_utils(); - var parse_remote_messages_1 = require_parse_remote_messages(); - 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 parsers = [ - new utils_1.LineParser(/^Pushing to (.+)$/, (result, [repo]) => { - result.repo = repo; - }), - new utils_1.LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => { - result.ref = Object.assign(Object.assign({}, result.ref || {}), { local }); - }), - new utils_1.LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => { - result.pushed.push(pushResultPushedItem(local, remote, type)); - }), - new utils_1.LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => { - result.branch = Object.assign(Object.assign({}, result.branch || {}), { - local, - remote, - remoteName - }); - }), - new utils_1.LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => { - result.update = { - head: { - local, - remote - }, - hash: { - from, - to - } - }; - }) - ]; - var parsePushResult = (stdOut, stdErr) => { - const pushDetail = exports.parsePushDetail(stdOut, stdErr); - const responseDetail = parse_remote_messages_1.parseRemoteMessages(stdOut, stdErr); - return Object.assign(Object.assign({}, pushDetail), responseDetail); - }; - exports.parsePushResult = parsePushResult; - var parsePushDetail = (stdOut, stdErr) => { - return utils_1.parseStringResponse({ pushed: [] }, parsers, stdOut, stdErr); - }; - exports.parsePushDetail = parsePushDetail; - } -}); - -// node_modules/simple-git/src/lib/tasks/push.js -var require_push = __commonJS({ - "node_modules/simple-git/src/lib/tasks/push.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.pushTask = exports.pushTagsTask = void 0; - var parse_push_1 = require_parse_push(); - var utils_1 = require_utils(); - function pushTagsTask(ref = {}, customArgs) { - utils_1.append(customArgs, "--tags"); - return pushTask(ref, customArgs); - } - exports.pushTagsTask = pushTagsTask; - 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); - } - utils_1.remove(commands, "-v"); - utils_1.append(commands, "--verbose"); - utils_1.append(commands, "--porcelain"); - return { - commands, - format: "utf-8", - parser: parse_push_1.parsePushResult - }; - } - exports.pushTask = pushTask; - } -}); - -// node_modules/simple-git/src/lib/responses/FileStatusSummary.js -var require_FileStatusSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/FileStatusSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.FileStatusSummary = exports.fromPathRegex = void 0; - exports.fromPathRegex = /^(.+) -> (.+)$/; - var 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 = exports.fromPathRegex.exec(path3) || [null, path3, path3]; - this.from = detail[1] || ""; - this.path = detail[2] || ""; - } - } - }; - exports.FileStatusSummary = FileStatusSummary; - } -}); - -// node_modules/simple-git/src/lib/responses/StatusSummary.js -var require_StatusSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/StatusSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseStatusSummary = exports.StatusSummary = void 0; - var utils_1 = require_utils(); - var FileStatusSummary_1 = require_FileStatusSummary(); - var StatusSummary = class { - constructor() { - this.not_added = []; - this.conflicted = []; - this.created = []; - this.deleted = []; - this.modified = []; - this.renamed = []; - this.files = []; - this.staged = []; - this.ahead = 0; - this.behind = 0; - this.current = null; - this.tracking = null; - this.detached = false; - } - isClean() { - return !this.files.length; - } - }; - exports.StatusSummary = StatusSummary; - var PorcelainFileStatus; - (function(PorcelainFileStatus2) { - PorcelainFileStatus2["ADDED"] = "A"; - PorcelainFileStatus2["DELETED"] = "D"; - PorcelainFileStatus2["MODIFIED"] = "M"; - PorcelainFileStatus2["RENAMED"] = "R"; - PorcelainFileStatus2["COPIED"] = "C"; - PorcelainFileStatus2["UNMERGED"] = "U"; - PorcelainFileStatus2["UNTRACKED"] = "?"; - PorcelainFileStatus2["IGNORED"] = "!"; - PorcelainFileStatus2["NONE"] = " "; - })(PorcelainFileStatus || (PorcelainFileStatus = {})); - function renamedFile(line) { - const detail = /^(.+) -> (.+)$/.exec(line); - if (!detail) { - return { - from: line, - to: line - }; - } - return { - from: String(detail[1]), - to: String(detail[2]) - }; - } - function parser(indexX, indexY, handler) { - return [`${indexX}${indexY}`, handler]; - } - function conflicts(indexX, ...indexY) { - return indexY.map((y) => parser(indexX, y, (result, file) => utils_1.append(result.conflicted, file))); - } - var parsers = new Map([ - parser(PorcelainFileStatus.NONE, PorcelainFileStatus.ADDED, (result, file) => utils_1.append(result.created, file)), - parser(PorcelainFileStatus.NONE, PorcelainFileStatus.DELETED, (result, file) => utils_1.append(result.deleted, file)), - parser(PorcelainFileStatus.NONE, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.modified, file)), - parser(PorcelainFileStatus.ADDED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.created, file) && utils_1.append(result.staged, file)), - parser(PorcelainFileStatus.ADDED, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.created, file) && utils_1.append(result.staged, file) && utils_1.append(result.modified, file)), - parser(PorcelainFileStatus.DELETED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.deleted, file) && utils_1.append(result.staged, file)), - parser(PorcelainFileStatus.MODIFIED, PorcelainFileStatus.NONE, (result, file) => utils_1.append(result.modified, file) && utils_1.append(result.staged, file)), - parser(PorcelainFileStatus.MODIFIED, PorcelainFileStatus.MODIFIED, (result, file) => utils_1.append(result.modified, file) && utils_1.append(result.staged, file)), - parser(PorcelainFileStatus.RENAMED, PorcelainFileStatus.NONE, (result, file) => { - utils_1.append(result.renamed, renamedFile(file)); - }), - parser(PorcelainFileStatus.RENAMED, PorcelainFileStatus.MODIFIED, (result, file) => { - const renamed = renamedFile(file); - utils_1.append(result.renamed, renamed); - utils_1.append(result.modified, renamed.to); - }), - parser(PorcelainFileStatus.UNTRACKED, PorcelainFileStatus.UNTRACKED, (result, file) => utils_1.append(result.not_added, file)), - ...conflicts(PorcelainFileStatus.ADDED, PorcelainFileStatus.ADDED, PorcelainFileStatus.UNMERGED), - ...conflicts(PorcelainFileStatus.DELETED, PorcelainFileStatus.DELETED, PorcelainFileStatus.UNMERGED), - ...conflicts(PorcelainFileStatus.UNMERGED, PorcelainFileStatus.ADDED, PorcelainFileStatus.DELETED, PorcelainFileStatus.UNMERGED), - ["##", (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); - }] - ]); - var parseStatusSummary = function(text2) { - const lines = text2.trim().split("\n"); - const status = new StatusSummary(); - for (let i = 0, l = lines.length; i < l; i++) { - splitLine(status, lines[i]); - } - return status; - }; - exports.parseStatusSummary = parseStatusSummary; - function splitLine(result, lineStr) { - const trimmed = lineStr.trim(); - switch (" ") { - case trimmed.charAt(2): - return data(trimmed.charAt(0), trimmed.charAt(1), trimmed.substr(3)); - case trimmed.charAt(1): - return data(PorcelainFileStatus.NONE, trimmed.charAt(0), trimmed.substr(2)); - default: - return; - } - function data(index, workingDir, path3) { - const raw = `${index}${workingDir}`; - const handler = parsers.get(raw); - if (handler) { - handler(result, path3); - } - if (raw !== "##") { - result.files.push(new FileStatusSummary_1.FileStatusSummary(path3, index, workingDir)); - } - } - } - } -}); - -// node_modules/simple-git/src/lib/tasks/status.js -var require_status = __commonJS({ - "node_modules/simple-git/src/lib/tasks/status.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.statusTask = void 0; - var StatusSummary_1 = require_StatusSummary(); - function statusTask(customArgs) { - return { - format: "utf-8", - commands: ["status", "--porcelain", "-b", "-u", ...customArgs], - parser(text2) { - return StatusSummary_1.parseStatusSummary(text2); - } - }; - } - exports.statusTask = statusTask; - } -}); - -// node_modules/simple-git/src/lib/simple-git-api.js -var require_simple_git_api = __commonJS({ - "node_modules/simple-git/src/lib/simple-git-api.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.SimpleGitApi = void 0; - var task_callback_1 = require_task_callback(); - var change_working_directory_1 = require_change_working_directory(); - var config_1 = require_config(); - var grep_1 = require_grep(); - var hash_object_1 = require_hash_object(); - var init_1 = require_init(); - var log_1 = require_log(); - var merge_1 = require_merge(); - var push_1 = require_push(); - var status_1 = require_status(); - var task_1 = require_task(); - var utils_1 = require_utils(); - var SimpleGitApi = class { - constructor(_executor) { - this._executor = _executor; - } - _runTask(task, then) { - const chain = this._executor.chain(); - const promise2 = chain.push(task); - if (then) { - task_callback_1.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(task_1.straightThroughStringTask(["add", ...utils_1.asArray(files)]), utils_1.trailingFunctionArgument(arguments)); - } - cwd(directory) { - const next = utils_1.trailingFunctionArgument(arguments); - if (typeof directory === "string") { - return this._runTask(change_working_directory_1.changeWorkingDirectoryTask(directory, this._executor), next); - } - if (typeof (directory === null || directory === void 0 ? void 0 : directory.path) === "string") { - return this._runTask(change_working_directory_1.changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next); - } - return this._runTask(task_1.configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next); - } - hashObject(path3, write) { - return this._runTask(hash_object_1.hashObjectTask(path3, write === true), utils_1.trailingFunctionArgument(arguments)); - } - init(bare) { - return this._runTask(init_1.initTask(bare === true, this._executor.cwd, utils_1.getTrailingOptions(arguments)), utils_1.trailingFunctionArgument(arguments)); - } - merge() { - return this._runTask(merge_1.mergeTask(utils_1.getTrailingOptions(arguments)), utils_1.trailingFunctionArgument(arguments)); - } - mergeFromTo(remote, branch) { - if (!(utils_1.filterString(remote) && utils_1.filterString(branch))) { - return this._runTask(task_1.configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`)); - } - return this._runTask(merge_1.mergeTask([remote, branch, ...utils_1.getTrailingOptions(arguments)]), utils_1.trailingFunctionArgument(arguments, false)); - } - outputHandler(handler) { - this._executor.outputHandler = handler; - return this; - } - push() { - const task = push_1.pushTask({ - remote: utils_1.filterType(arguments[0], utils_1.filterString), - branch: utils_1.filterType(arguments[1], utils_1.filterString) - }, utils_1.getTrailingOptions(arguments)); - return this._runTask(task, utils_1.trailingFunctionArgument(arguments)); - } - stash() { - return this._runTask(task_1.straightThroughStringTask(["stash", ...utils_1.getTrailingOptions(arguments)]), utils_1.trailingFunctionArgument(arguments)); - } - status() { - return this._runTask(status_1.statusTask(utils_1.getTrailingOptions(arguments)), utils_1.trailingFunctionArgument(arguments)); - } - }; - exports.SimpleGitApi = SimpleGitApi; - Object.assign(SimpleGitApi.prototype, config_1.default(), grep_1.default(), log_1.default()); - } -}); - -// node_modules/simple-git/src/lib/runners/scheduler.js -var require_scheduler = __commonJS({ - "node_modules/simple-git/src/lib/runners/scheduler.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.Scheduler = void 0; - var utils_1 = require_utils(); - var promise_deferred_1 = require_dist2(); - var git_logger_1 = require_git_logger(); - var createScheduledTask = (() => { - let id = 0; - return () => { - id++; - const { promise: promise2, done } = promise_deferred_1.createDeferred(); - return { - promise: promise2, - done, - id - }; - }; - })(); - var Scheduler = class { - constructor(concurrency = 2) { - this.concurrency = concurrency; - this.logger = git_logger_1.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 = utils_1.append(this.running, this.pending.shift()); - this.logger(`Attempting id=%s`, task.id); - task.done(() => { - this.logger(`Completing id=`, task.id); - utils_1.remove(this.running, task); - this.schedule(); - }); - } - next() { - const { promise: promise2, id } = utils_1.append(this.pending, createScheduledTask()); - this.logger(`Scheduling id=%s`, id); - this.schedule(); - return promise2; - } - }; - exports.Scheduler = Scheduler; - } -}); - -// node_modules/simple-git/src/lib/tasks/apply-patch.js -var require_apply_patch = __commonJS({ - "node_modules/simple-git/src/lib/tasks/apply-patch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.applyPatchTask = void 0; - var task_1 = require_task(); - function applyPatchTask(patches, customArgs) { - return task_1.straightThroughStringTask(["apply", ...customArgs, ...patches]); - } - exports.applyPatchTask = applyPatchTask; - } -}); - -// node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js -var require_BranchDeleteSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/BranchDeleteSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.isSingleBranchDeleteFailure = exports.branchDeletionFailure = exports.branchDeletionSuccess = exports.BranchDeletionBatch = void 0; - var BranchDeletionBatch = class { - constructor() { - this.all = []; - this.branches = {}; - this.errors = []; - } - get success() { - return !this.errors.length; - } - }; - exports.BranchDeletionBatch = BranchDeletionBatch; - function branchDeletionSuccess(branch, hash2) { - return { - branch, - hash: hash2, - success: true - }; - } - exports.branchDeletionSuccess = branchDeletionSuccess; - function branchDeletionFailure(branch) { - return { - branch, - hash: null, - success: false - }; - } - exports.branchDeletionFailure = branchDeletionFailure; - function isSingleBranchDeleteFailure(test) { - return test.success; - } - exports.isSingleBranchDeleteFailure = isSingleBranchDeleteFailure; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-branch-delete.js -var require_parse_branch_delete = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-branch-delete.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.hasBranchDeletionError = exports.parseBranchDeletions = void 0; - var BranchDeleteSummary_1 = require_BranchDeleteSummary(); - var utils_1 = require_utils(); - var deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/; - var deleteErrorRegex = /^error[^']+'([^']+)'/m; - var parsers = [ - new utils_1.LineParser(deleteSuccessRegex, (result, [branch, hash2]) => { - const deletion = BranchDeleteSummary_1.branchDeletionSuccess(branch, hash2); - result.all.push(deletion); - result.branches[branch] = deletion; - }), - new utils_1.LineParser(deleteErrorRegex, (result, [branch]) => { - const deletion = BranchDeleteSummary_1.branchDeletionFailure(branch); - result.errors.push(deletion); - result.all.push(deletion); - result.branches[branch] = deletion; - }) - ]; - var parseBranchDeletions = (stdOut, stdErr) => { - return utils_1.parseStringResponse(new BranchDeleteSummary_1.BranchDeletionBatch(), parsers, stdOut, stdErr); - }; - exports.parseBranchDeletions = parseBranchDeletions; - function hasBranchDeletionError(data, processExitCode) { - return processExitCode === utils_1.ExitCodes.ERROR && deleteErrorRegex.test(data); - } - exports.hasBranchDeletionError = hasBranchDeletionError; - } -}); - -// node_modules/simple-git/src/lib/responses/BranchSummary.js -var require_BranchSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/BranchSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.BranchSummaryResult = void 0; - var 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 - }; - } - }; - exports.BranchSummaryResult = BranchSummaryResult; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-branch.js -var require_parse_branch = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-branch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseBranchSummary = void 0; - var BranchSummary_1 = require_BranchSummary(); - var utils_1 = require_utils(); - var parsers = [ - new utils_1.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 utils_1.LineParser(/^(\*\s)?(\S+)\s+([a-z0-9]+)\s(.*)$/s, (result, [current, name, commit, label]) => { - result.push(!!current, false, name, commit, label); - }) - ]; - function parseBranchSummary(stdOut) { - return utils_1.parseStringResponse(new BranchSummary_1.BranchSummaryResult(), parsers, stdOut); - } - exports.parseBranchSummary = parseBranchSummary; - } -}); - -// node_modules/simple-git/src/lib/tasks/branch.js -var require_branch = __commonJS({ - "node_modules/simple-git/src/lib/tasks/branch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.deleteBranchTask = exports.deleteBranchesTask = exports.branchLocalTask = exports.branchTask = exports.containsDeleteBranchCommand = void 0; - var git_response_error_1 = require_git_response_error(); - var parse_branch_delete_1 = require_parse_branch_delete(); - var parse_branch_1 = require_parse_branch(); - var utils_1 = require_utils(); - function containsDeleteBranchCommand(commands) { - const deleteCommands = ["-d", "-D", "--delete"]; - return commands.some((command) => deleteCommands.includes(command)); - } - exports.containsDeleteBranchCommand = containsDeleteBranchCommand; - 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 parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).all[0]; - } - return parse_branch_1.parseBranchSummary(stdOut); - } - }; - } - exports.branchTask = branchTask; - function branchLocalTask() { - const parser = parse_branch_1.parseBranchSummary; - return { - format: "utf-8", - commands: ["branch", "-v"], - parser - }; - } - exports.branchLocalTask = branchLocalTask; - function deleteBranchesTask(branches, forceDelete = false) { - return { - format: "utf-8", - commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches], - parser(stdOut, stdErr) { - return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr); - }, - onError({ exitCode, stdOut }, error, done, fail) { - if (!parse_branch_delete_1.hasBranchDeletionError(String(error), exitCode)) { - return fail(error); - } - done(stdOut); - } - }; - } - exports.deleteBranchesTask = deleteBranchesTask; - function deleteBranchTask(branch, forceDelete = false) { - const task = { - format: "utf-8", - commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch], - parser(stdOut, stdErr) { - return parse_branch_delete_1.parseBranchDeletions(stdOut, stdErr).branches[branch]; - }, - onError({ exitCode, stdErr, stdOut }, error, _, fail) { - if (!parse_branch_delete_1.hasBranchDeletionError(String(error), exitCode)) { - return fail(error); - } - throw new git_response_error_1.GitResponseError(task.parser(utils_1.bufferToString(stdOut), utils_1.bufferToString(stdErr)), String(error)); - } - }; - return task; - } - exports.deleteBranchTask = deleteBranchTask; - } -}); - -// node_modules/simple-git/src/lib/responses/CheckIgnore.js -var require_CheckIgnore = __commonJS({ - "node_modules/simple-git/src/lib/responses/CheckIgnore.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseCheckIgnore = void 0; - var parseCheckIgnore = (text2) => { - return text2.split(/\n/g).map((line) => line.trim()).filter((file) => !!file); - }; - exports.parseCheckIgnore = parseCheckIgnore; - } -}); - -// node_modules/simple-git/src/lib/tasks/check-ignore.js -var require_check_ignore = __commonJS({ - "node_modules/simple-git/src/lib/tasks/check-ignore.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.checkIgnoreTask = void 0; - var CheckIgnore_1 = require_CheckIgnore(); - function checkIgnoreTask(paths) { - return { - commands: ["check-ignore", ...paths], - format: "utf-8", - parser: CheckIgnore_1.parseCheckIgnore - }; - } - exports.checkIgnoreTask = checkIgnoreTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/clone.js -var require_clone = __commonJS({ - "node_modules/simple-git/src/lib/tasks/clone.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.cloneMirrorTask = exports.cloneTask = void 0; - var task_1 = require_task(); - var utils_1 = require_utils(); - function cloneTask(repo, directory, customArgs) { - const commands = ["clone", ...customArgs]; - if (typeof repo === "string") { - commands.push(repo); - } - if (typeof directory === "string") { - commands.push(directory); - } - return task_1.straightThroughStringTask(commands); - } - exports.cloneTask = cloneTask; - function cloneMirrorTask(repo, directory, customArgs) { - utils_1.append(customArgs, "--mirror"); - return cloneTask(repo, directory, customArgs); - } - exports.cloneMirrorTask = cloneMirrorTask; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-commit.js -var require_parse_commit = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-commit.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseCommitResult = void 0; - var utils_1 = require_utils(); - var parsers = [ - new utils_1.LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => { - result.branch = branch; - result.commit = commit; - result.root = !!root; - }), - new utils_1.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 utils_1.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 utils_1.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; - } - }) - ]; - function parseCommitResult(stdOut) { - const result = { - author: null, - branch: "", - commit: "", - root: false, - summary: { - changes: 0, - insertions: 0, - deletions: 0 - } - }; - return utils_1.parseStringResponse(result, parsers, stdOut); - } - exports.parseCommitResult = parseCommitResult; - } -}); - -// node_modules/simple-git/src/lib/tasks/commit.js -var require_commit = __commonJS({ - "node_modules/simple-git/src/lib/tasks/commit.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.commitTask = void 0; - var parse_commit_1 = require_parse_commit(); - 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: parse_commit_1.parseCommitResult - }; - } - exports.commitTask = commitTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/diff.js -var require_diff = __commonJS({ - "node_modules/simple-git/src/lib/tasks/diff.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.diffSummaryTask = void 0; - var parse_diff_summary_1 = require_parse_diff_summary(); - function diffSummaryTask(customArgs) { - return { - commands: ["diff", "--stat=4096", ...customArgs], - format: "utf-8", - parser(stdOut) { - return parse_diff_summary_1.parseDiffResult(stdOut); - } - }; - } - exports.diffSummaryTask = diffSummaryTask; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-fetch.js -var require_parse_fetch = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-fetch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseFetchResult = void 0; - var utils_1 = require_utils(); - var parsers = [ - new utils_1.LineParser(/From (.+)$/, (result, [remote]) => { - result.remote = remote; - }), - new utils_1.LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { - result.branches.push({ - name, - tracking - }); - }), - new utils_1.LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => { - result.tags.push({ - name, - tracking - }); - }) - ]; - function parseFetchResult(stdOut, stdErr) { - const result = { - raw: stdOut, - remote: null, - branches: [], - tags: [] - }; - return utils_1.parseStringResponse(result, parsers, stdOut, stdErr); - } - exports.parseFetchResult = parseFetchResult; - } -}); - -// node_modules/simple-git/src/lib/tasks/fetch.js -var require_fetch = __commonJS({ - "node_modules/simple-git/src/lib/tasks/fetch.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.fetchTask = void 0; - var parse_fetch_1 = require_parse_fetch(); - function fetchTask(remote, branch, customArgs) { - const commands = ["fetch", ...customArgs]; - if (remote && branch) { - commands.push(remote, branch); - } - return { - commands, - format: "utf-8", - parser: parse_fetch_1.parseFetchResult - }; - } - exports.fetchTask = fetchTask; - } -}); - -// node_modules/simple-git/src/lib/parsers/parse-move.js -var require_parse_move = __commonJS({ - "node_modules/simple-git/src/lib/parsers/parse-move.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseMoveResult = void 0; - var utils_1 = require_utils(); - var parsers = [ - new utils_1.LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => { - result.moves.push({ from, to }); - }) - ]; - function parseMoveResult(stdOut) { - return utils_1.parseStringResponse({ moves: [] }, parsers, stdOut); - } - exports.parseMoveResult = parseMoveResult; - } -}); - -// node_modules/simple-git/src/lib/tasks/move.js -var require_move = __commonJS({ - "node_modules/simple-git/src/lib/tasks/move.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.moveTask = void 0; - var parse_move_1 = require_parse_move(); - var utils_1 = require_utils(); - function moveTask(from, to) { - return { - commands: ["mv", "-v", ...utils_1.asArray(from), to], - format: "utf-8", - parser: parse_move_1.parseMoveResult - }; - } - exports.moveTask = moveTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/pull.js -var require_pull = __commonJS({ - "node_modules/simple-git/src/lib/tasks/pull.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.pullTask = void 0; - var parse_pull_1 = require_parse_pull(); - 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 parse_pull_1.parsePullResult(stdOut, stdErr); - } - }; - } - exports.pullTask = pullTask; - } -}); - -// node_modules/simple-git/src/lib/responses/GetRemoteSummary.js -var require_GetRemoteSummary = __commonJS({ - "node_modules/simple-git/src/lib/responses/GetRemoteSummary.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseGetRemotesVerbose = exports.parseGetRemotes = void 0; - var utils_1 = require_utils(); - function parseGetRemotes(text2) { - const remotes = {}; - forEach(text2, ([name]) => remotes[name] = { name }); - return Object.values(remotes); - } - exports.parseGetRemotes = parseGetRemotes; - 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); - } - exports.parseGetRemotesVerbose = parseGetRemotesVerbose; - function forEach(text2, handler) { - utils_1.forEachLineWithContent(text2, (line) => handler(line.split(/\s+/))); - } - } -}); - -// node_modules/simple-git/src/lib/tasks/remote.js -var require_remote = __commonJS({ - "node_modules/simple-git/src/lib/tasks/remote.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.removeRemoteTask = exports.remoteTask = exports.listRemotesTask = exports.getRemotesTask = exports.addRemoteTask = void 0; - var GetRemoteSummary_1 = require_GetRemoteSummary(); - var task_1 = require_task(); - function addRemoteTask(remoteName, remoteRepo, customArgs = []) { - return task_1.straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]); - } - exports.addRemoteTask = addRemoteTask; - function getRemotesTask(verbose) { - const commands = ["remote"]; - if (verbose) { - commands.push("-v"); - } - return { - commands, - format: "utf-8", - parser: verbose ? GetRemoteSummary_1.parseGetRemotesVerbose : GetRemoteSummary_1.parseGetRemotes - }; - } - exports.getRemotesTask = getRemotesTask; - function listRemotesTask(customArgs = []) { - const commands = [...customArgs]; - if (commands[0] !== "ls-remote") { - commands.unshift("ls-remote"); - } - return task_1.straightThroughStringTask(commands); - } - exports.listRemotesTask = listRemotesTask; - function remoteTask(customArgs = []) { - const commands = [...customArgs]; - if (commands[0] !== "remote") { - commands.unshift("remote"); - } - return task_1.straightThroughStringTask(commands); - } - exports.remoteTask = remoteTask; - function removeRemoteTask(remoteName) { - return task_1.straightThroughStringTask(["remote", "remove", remoteName]); - } - exports.removeRemoteTask = removeRemoteTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/stash-list.js -var require_stash_list = __commonJS({ - "node_modules/simple-git/src/lib/tasks/stash-list.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.stashListTask = void 0; - var parse_list_log_summary_1 = require_parse_list_log_summary(); - var log_1 = require_log(); - function stashListTask(opt = {}, customArgs) { - const options = log_1.parseLogOptions(opt); - const parser = parse_list_log_summary_1.createListLogSummaryParser(options.splitter, options.fields); - return { - commands: ["stash", "list", ...options.commands, ...customArgs], - format: "utf-8", - parser - }; - } - exports.stashListTask = stashListTask; - } -}); - -// node_modules/simple-git/src/lib/tasks/sub-module.js -var require_sub_module = __commonJS({ - "node_modules/simple-git/src/lib/tasks/sub-module.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.updateSubModuleTask = exports.subModuleTask = exports.initSubModuleTask = exports.addSubModuleTask = void 0; - var task_1 = require_task(); - function addSubModuleTask(repo, path3) { - return subModuleTask(["add", repo, path3]); - } - exports.addSubModuleTask = addSubModuleTask; - function initSubModuleTask(customArgs) { - return subModuleTask(["init", ...customArgs]); - } - exports.initSubModuleTask = initSubModuleTask; - function subModuleTask(customArgs) { - const commands = [...customArgs]; - if (commands[0] !== "submodule") { - commands.unshift("submodule"); - } - return task_1.straightThroughStringTask(commands); - } - exports.subModuleTask = subModuleTask; - function updateSubModuleTask(customArgs) { - return subModuleTask(["update", ...customArgs]); - } - exports.updateSubModuleTask = updateSubModuleTask; - } -}); - -// node_modules/simple-git/src/lib/responses/TagList.js -var require_TagList = __commonJS({ - "node_modules/simple-git/src/lib/responses/TagList.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.parseTagList = exports.TagList = void 0; - var TagList = class { - constructor(all, latest) { - this.all = all; - this.latest = latest; - } - }; - exports.TagList = TagList; - var 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); - }; - exports.parseTagList = parseTagList; - 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; - } - } -}); - -// node_modules/simple-git/src/lib/tasks/tag.js -var require_tag = __commonJS({ - "node_modules/simple-git/src/lib/tasks/tag.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.addAnnotatedTagTask = exports.addTagTask = exports.tagListTask = void 0; - var TagList_1 = require_TagList(); - function tagListTask(customArgs = []) { - const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option)); - return { - format: "utf-8", - commands: ["tag", "-l", ...customArgs], - parser(text2) { - return TagList_1.parseTagList(text2, hasCustomSort); - } - }; - } - exports.tagListTask = tagListTask; - function addTagTask(name) { - return { - format: "utf-8", - commands: ["tag", name], - parser() { - return { name }; - } - }; - } - exports.addTagTask = addTagTask; - function addAnnotatedTagTask(name, tagMessage) { - return { - format: "utf-8", - commands: ["tag", "-a", "-m", tagMessage, name], - parser() { - return { name }; - } - }; - } - exports.addAnnotatedTagTask = addAnnotatedTagTask; - } -}); - -// node_modules/simple-git/src/git.js -var require_git = __commonJS({ - "node_modules/simple-git/src/git.js"(exports, module2) { - var { GitExecutor } = require_git_executor(); - var { SimpleGitApi } = require_simple_git_api(); - var { Scheduler } = require_scheduler(); - var { GitLogger } = require_git_logger(); - var { configurationErrorTask } = require_task(); - var { - asArray, - filterArray, - filterPrimitives, - filterString, - filterStringOrStringArray, - filterType, - getTrailingOptions, - trailingFunctionArgument, - trailingOptionsArgument - } = require_utils(); - var { applyPatchTask } = require_apply_patch(); - var { branchTask, branchLocalTask, deleteBranchesTask, deleteBranchTask } = require_branch(); - var { checkIgnoreTask } = require_check_ignore(); - var { checkIsRepoTask } = require_check_is_repo(); - var { cloneTask, cloneMirrorTask } = require_clone(); - var { cleanWithOptionsTask, isCleanOptionsArray } = require_clean(); - var { commitTask } = require_commit(); - var { diffSummaryTask } = require_diff(); - var { fetchTask } = require_fetch(); - var { moveTask } = require_move(); - var { pullTask } = require_pull(); - var { pushTagsTask } = require_push(); - var { addRemoteTask, getRemotesTask, listRemotesTask, remoteTask, removeRemoteTask } = require_remote(); - var { getResetMode, resetTask } = require_reset(); - var { stashListTask } = require_stash_list(); - var { addSubModuleTask, initSubModuleTask, subModuleTask, updateSubModuleTask } = require_sub_module(); - var { addAnnotatedTagTask, addTagTask, tagListTask } = require_tag(); - var { straightThroughBufferTask, straightThroughStringTask } = require_task(); - function Git(options, plugins) { - this._executor = new GitExecutor(options.binary, options.baseDir, new Scheduler(options.maxConcurrentProcesses), plugins); - this._logger = new GitLogger(); - } - (Git.prototype = Object.create(SimpleGitApi.prototype)).constructor = Git; - Git.prototype._logger = null; - Git.prototype.customBinary = function(command) { - this._executor.binary = command; - return this; - }; - Git.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; - }; - Git.prototype.stashList = function(options) { - return this._runTask(stashListTask(trailingOptionsArgument(arguments) || {}, filterArray(options) && options || []), trailingFunctionArgument(arguments)); - }; - function createCloneTask(api, task, repoPath, localPath) { - if (typeof repoPath !== "string") { - return configurationErrorTask(`git.${api}() requires a string 'repoPath'`); - } - return task(repoPath, filterType(localPath, filterString), getTrailingOptions(arguments)); - } - Git.prototype.clone = function() { - return this._runTask(createCloneTask("clone", cloneTask, ...arguments), trailingFunctionArgument(arguments)); - }; - Git.prototype.mirror = function() { - return this._runTask(createCloneTask("mirror", cloneMirrorTask, ...arguments), trailingFunctionArgument(arguments)); - }; - Git.prototype.mv = function(from, to) { - return this._runTask(moveTask(from, to), trailingFunctionArgument(arguments)); - }; - Git.prototype.checkoutLatestTag = function(then) { - var git = this; - return this.pull(function() { - git.tags(function(err, tags) { - git.checkout(tags.latest, then); - }); - }); - }; - Git.prototype.commit = function(message, files, options, then) { - const next = trailingFunctionArgument(arguments); - const messages = []; - if (filterStringOrStringArray(message)) { - messages.push(...asArray(message)); - } else { - console.warn("simple-git deprecation notice: git.commit: requires the commit message to be supplied as a string/string[], this will be an error in version 3"); - } - return this._runTask(commitTask(messages, asArray(filterType(files, filterStringOrStringArray, [])), [...filterType(options, filterArray, []), ...getTrailingOptions(arguments, 0, true)]), next); - }; - Git.prototype.pull = function(remote, branch, options, then) { - return this._runTask(pullTask(filterType(remote, filterString), filterType(branch, filterString), getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.fetch = function(remote, branch) { - return this._runTask(fetchTask(filterType(remote, filterString), filterType(branch, filterString), getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.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"); - this._logger.silent(!!silence); - return this; - }; - Git.prototype.tags = function(options, then) { - return this._runTask(tagListTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.rebase = function() { - return this._runTask(straightThroughStringTask(["rebase", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments)); - }; - Git.prototype.reset = function(mode) { - return this._runTask(resetTask(getResetMode(mode), getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.revert = function(commit) { - const next = trailingFunctionArgument(arguments); - if (typeof commit !== "string") { - return this._runTask(configurationErrorTask("Commit must be a string"), next); - } - return this._runTask(straightThroughStringTask(["revert", ...getTrailingOptions(arguments, 0, true), commit]), next); - }; - Git.prototype.addTag = function(name) { - const task = typeof name === "string" ? addTagTask(name) : configurationErrorTask("Git.addTag requires a tag name"); - return this._runTask(task, trailingFunctionArgument(arguments)); - }; - Git.prototype.addAnnotatedTag = function(tagName, tagMessage) { - return this._runTask(addAnnotatedTagTask(tagName, tagMessage), trailingFunctionArgument(arguments)); - }; - Git.prototype.checkout = function() { - const commands = ["checkout", ...getTrailingOptions(arguments, true)]; - return this._runTask(straightThroughStringTask(commands), trailingFunctionArgument(arguments)); - }; - Git.prototype.checkoutBranch = function(branchName, startPoint, then) { - return this.checkout(["-b", branchName, startPoint], trailingFunctionArgument(arguments)); - }; - Git.prototype.checkoutLocalBranch = function(branchName, then) { - return this.checkout(["-b", branchName], trailingFunctionArgument(arguments)); - }; - Git.prototype.deleteLocalBranch = function(branchName, forceDelete, then) { - return this._runTask(deleteBranchTask(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument(arguments)); - }; - Git.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) { - return this._runTask(deleteBranchesTask(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument(arguments)); - }; - Git.prototype.branch = function(options, then) { - return this._runTask(branchTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.branchLocal = function(then) { - return this._runTask(branchLocalTask(), trailingFunctionArgument(arguments)); - }; - Git.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 (!filterPrimitives(command[i])) { - command.splice(i, command.length - i); - break; - } - } - command.push(...getTrailingOptions(arguments, 0, true)); - var next = trailingFunctionArgument(arguments); - if (!command.length) { - return this._runTask(configurationErrorTask("Raw: must supply one or more command to execute"), next); - } - return this._runTask(straightThroughStringTask(command), next); - }; - Git.prototype.submoduleAdd = function(repo, path3, then) { - return this._runTask(addSubModuleTask(repo, path3), trailingFunctionArgument(arguments)); - }; - Git.prototype.submoduleUpdate = function(args, then) { - return this._runTask(updateSubModuleTask(getTrailingOptions(arguments, true)), trailingFunctionArgument(arguments)); - }; - Git.prototype.submoduleInit = function(args, then) { - return this._runTask(initSubModuleTask(getTrailingOptions(arguments, true)), trailingFunctionArgument(arguments)); - }; - Git.prototype.subModule = function(options, then) { - return this._runTask(subModuleTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.listRemote = function() { - return this._runTask(listRemotesTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.addRemote = function(remoteName, remoteRepo, then) { - return this._runTask(addRemoteTask(remoteName, remoteRepo, getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.removeRemote = function(remoteName, then) { - return this._runTask(removeRemoteTask(remoteName), trailingFunctionArgument(arguments)); - }; - Git.prototype.getRemotes = function(verbose, then) { - return this._runTask(getRemotesTask(verbose === true), trailingFunctionArgument(arguments)); - }; - Git.prototype.remote = function(options, then) { - return this._runTask(remoteTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments)); - }; - Git.prototype.tag = function(options, then) { - const command = getTrailingOptions(arguments); - if (command[0] !== "tag") { - command.unshift("tag"); - } - return this._runTask(straightThroughStringTask(command), trailingFunctionArgument(arguments)); - }; - Git.prototype.updateServerInfo = function(then) { - return this._runTask(straightThroughStringTask(["update-server-info"]), trailingFunctionArgument(arguments)); - }; - Git.prototype.pushTags = function(remote, then) { - const task = pushTagsTask({ remote: filterType(remote, filterString) }, getTrailingOptions(arguments)); - return this._runTask(task, trailingFunctionArgument(arguments)); - }; - Git.prototype.rm = function(files) { - return this._runTask(straightThroughStringTask(["rm", "-f", ...asArray(files)]), trailingFunctionArgument(arguments)); - }; - Git.prototype.rmKeepLocal = function(files) { - return this._runTask(straightThroughStringTask(["rm", "--cached", ...asArray(files)]), trailingFunctionArgument(arguments)); - }; - Git.prototype.catFile = function(options, then) { - return this._catFile("utf-8", arguments); - }; - Git.prototype.binaryCatFile = function() { - return this._catFile("buffer", arguments); - }; - Git.prototype._catFile = function(format, args) { - var handler = trailingFunctionArgument(args); - var command = ["cat-file"]; - var options = args[0]; - if (typeof options === "string") { - return this._runTask(configurationErrorTask("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" ? straightThroughBufferTask(command) : straightThroughStringTask(command); - return this._runTask(task, handler); - }; - Git.prototype.diff = function(options, then) { - const command = ["diff", ...getTrailingOptions(arguments)]; - if (typeof options === "string") { - command.splice(1, 0, options); - this._logger.warn("Git#diff: supplying options as a single string is now deprecated, switch to an array of strings"); - } - return this._runTask(straightThroughStringTask(command), trailingFunctionArgument(arguments)); - }; - Git.prototype.diffSummary = function() { - return this._runTask(diffSummaryTask(getTrailingOptions(arguments, 1)), trailingFunctionArgument(arguments)); - }; - Git.prototype.applyPatch = function(patches) { - const task = !filterStringOrStringArray(patches) ? configurationErrorTask(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask(asArray(patches), getTrailingOptions([].slice.call(arguments, 1))); - return this._runTask(task, trailingFunctionArgument(arguments)); - }; - Git.prototype.revparse = function() { - const commands = ["rev-parse", ...getTrailingOptions(arguments, true)]; - return this._runTask(straightThroughStringTask(commands, true), trailingFunctionArgument(arguments)); - }; - Git.prototype.show = function(options, then) { - return this._runTask(straightThroughStringTask(["show", ...getTrailingOptions(arguments, 1)]), trailingFunctionArgument(arguments)); - }; - Git.prototype.clean = function(mode, options, then) { - const usingCleanOptionsArray = isCleanOptionsArray(mode); - const cleanMode = usingCleanOptionsArray && mode.join("") || filterType(mode, filterString) || ""; - const customArgs = getTrailingOptions([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0)); - return this._runTask(cleanWithOptionsTask(cleanMode, customArgs), trailingFunctionArgument(arguments)); - }; - Git.prototype.exec = function(then) { - const task = { - commands: [], - format: "utf-8", - parser() { - if (typeof then === "function") { - then(); - } - } - }; - return this._runTask(task); - }; - Git.prototype.clearQueue = function() { - return this; - }; - Git.prototype.checkIgnore = function(pathnames, then) { - return this._runTask(checkIgnoreTask(asArray(filterType(pathnames, filterStringOrStringArray, []))), trailingFunctionArgument(arguments)); - }; - Git.prototype.checkIsRepo = function(checkType, then) { - return this._runTask(checkIsRepoTask(filterType(checkType, filterString)), trailingFunctionArgument(arguments)); - }; - module2.exports = Git; - } -}); - -// node_modules/simple-git/src/lib/git-factory.js -var require_git_factory = __commonJS({ - "node_modules/simple-git/src/lib/git-factory.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.gitInstanceFactory = exports.gitExportFactory = exports.esModuleFactory = void 0; - var api_1 = require_api(); - var plugins_1 = require_plugins(); - var utils_1 = require_utils(); - var Git = require_git(); - function esModuleFactory(defaultExport) { - return Object.defineProperties(defaultExport, { - __esModule: { value: true }, - default: { value: defaultExport } - }); - } - exports.esModuleFactory = esModuleFactory; - function gitExportFactory(factory, extra) { - return Object.assign(function(...args) { - return factory.apply(null, args); - }, api_1.default, extra || {}); - } - exports.gitExportFactory = gitExportFactory; - function gitInstanceFactory(baseDir, options) { - const plugins = new plugins_1.PluginStore(); - const config = utils_1.createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options); - if (!utils_1.folderExists(config.baseDir)) { - throw new api_1.default.GitConstructError(config, `Cannot use simple-git on a directory that does not exist`); - } - if (Array.isArray(config.config)) { - plugins.add(plugins_1.commandConfigPrefixingPlugin(config.config)); - } - plugins.add(plugins_1.completionDetectionPlugin(config.completion)); - config.progress && plugins.add(plugins_1.progressMonitorPlugin(config.progress)); - config.timeout && plugins.add(plugins_1.timeoutPlugin(config.timeout)); - config.spawnOptions && plugins.add(plugins_1.spawnOptionsPlugin(config.spawnOptions)); - plugins.add(plugins_1.errorDetectionPlugin(plugins_1.errorDetectionHandler(true))); - config.errors && plugins.add(plugins_1.errorDetectionPlugin(config.errors)); - return new Git(config, plugins); - } - exports.gitInstanceFactory = gitInstanceFactory; - } -}); - -// node_modules/simple-git/src/lib/runners/promise-wrapped.js -var require_promise_wrapped = __commonJS({ - "node_modules/simple-git/src/lib/runners/promise-wrapped.js"(exports) { - "use strict"; - Object.defineProperty(exports, "__esModule", { value: true }); - exports.gitP = void 0; - var git_response_error_1 = require_git_response_error(); - var git_factory_1 = require_git_factory(); - var functionNamesBuilderApi = [ - "customBinary", - "env", - "outputHandler", - "silent" - ]; - var functionNamesPromiseApi = [ - "add", - "addAnnotatedTag", - "addConfig", - "addRemote", - "addTag", - "applyPatch", - "binaryCatFile", - "branch", - "branchLocal", - "catFile", - "checkIgnore", - "checkIsRepo", - "checkout", - "checkoutBranch", - "checkoutLatestTag", - "checkoutLocalBranch", - "clean", - "clone", - "commit", - "cwd", - "deleteLocalBranch", - "deleteLocalBranches", - "diff", - "diffSummary", - "exec", - "fetch", - "getRemotes", - "init", - "listConfig", - "listRemote", - "log", - "merge", - "mergeFromTo", - "mirror", - "mv", - "pull", - "push", - "pushTags", - "raw", - "rebase", - "remote", - "removeRemote", - "reset", - "revert", - "revparse", - "rm", - "rmKeepLocal", - "show", - "stash", - "stashList", - "status", - "subModule", - "submoduleAdd", - "submoduleInit", - "submoduleUpdate", - "tag", - "tags", - "updateServerInfo" - ]; - function gitP(...args) { - let git; - let chain = Promise.resolve(); - try { - git = git_factory_1.gitInstanceFactory(...args); - } catch (e) { - chain = Promise.reject(e); - } - function builderReturn() { - return promiseApi; - } - function chainReturn() { - return chain; - } - const promiseApi = [...functionNamesBuilderApi, ...functionNamesPromiseApi].reduce((api, name) => { - const isAsync = functionNamesPromiseApi.includes(name); - const valid = isAsync ? asyncWrapper(name, git) : syncWrapper(name, git, api); - const alternative = isAsync ? chainReturn : builderReturn; - Object.defineProperty(api, name, { - enumerable: false, - configurable: false, - value: git ? valid : alternative - }); - return api; - }, {}); - return promiseApi; - function asyncWrapper(fn, git2) { - return function(...args2) { - if (typeof args2[args2.length] === "function") { - throw new TypeError("Promise interface requires that handlers are not supplied inline, trailing function not allowed in call to " + fn); - } - return chain.then(function() { - return new Promise(function(resolve, reject) { - const callback = (err, result) => { - if (err) { - return reject(toError(err)); - } - resolve(result); - }; - args2.push(callback); - git2[fn].apply(git2, args2); - }); - }); - }; - } - function syncWrapper(fn, git2, api) { - return (...args2) => { - git2[fn](...args2); - return api; - }; - } - } - exports.gitP = gitP; - function toError(error) { - if (error instanceof Error) { - return error; - } - if (typeof error === "string") { - return new Error(error); - } - return new git_response_error_1.GitResponseError(error); - } - } -}); - -// node_modules/simple-git/src/index.js -var require_src3 = __commonJS({ - "node_modules/simple-git/src/index.js"(exports, module2) { - var { gitP } = require_promise_wrapped(); - var { esModuleFactory, gitInstanceFactory, gitExportFactory } = require_git_factory(); - module2.exports = esModuleFactory(gitExportFactory(gitInstanceFactory, { gitP })); - } -}); - -// 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, key) { - try { - return it[key]; - } 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 key = keys[i]; - if (!has(target, key)) - defineProperty(target, key, getOwnPropertyDescriptor(source, key)); - } - }; - }, - "./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, key, value) { - var propertyKey = toPrimitive(key); - 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, key, targetProperty, sourceProperty, descriptor; - if (GLOBAL) { - target = global2; - } else if (STATIC) { - target = global2[TARGET] || setGlobal(TARGET, {}); - } else { - target = (global2[TARGET] || {}).prototype; - } - if (target) - for (key in source) { - sourceProperty = source[key]; - if (options.noTargetGet) { - descriptor = getOwnPropertyDescriptor(target, key); - targetProperty = descriptor && descriptor.value; - } else - targetProperty = target[key]; - FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? "." : "#") + key, 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, key, 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, key) { - return hasOwnProperty.call(it, key); - }; - }, - "./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, key, value) { - return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); - } : function(object, key, value) { - object[key] = 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 WeakMap = 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 WeakMap(); - 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 WeakMap = global2.WeakMap; - module3.exports = typeof WeakMap === "function" && /native code/.test(nativeFunctionToString.call(WeakMap)); - }, - "./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 html = __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"; - html.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 key; - while (length > i) - definePropertyModule.f(O, key = keys[i++], Properties[key]); - 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 key; - for (key in O) - !has(hiddenKeys, key) && has(O, key) && result.push(key); - while (names.length > i) - if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - 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 Reflect = global2.Reflect; - module3.exports = Reflect && Reflect.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, key, value, options) { - var unsafe = options ? !!options.unsafe : false; - var simple2 = options ? !!options.enumerable : false; - var noTargetGet = options ? !!options.noTargetGet : false; - if (typeof value == "function") { - if (typeof key == "string" && !has(value, "name")) - hide(value, "name", key); - enforceInternalState(value).source = TEMPLATE.join(typeof key == "string" ? key : ""); - } - if (O === global2) { - if (simple2) - O[key] = value; - else - setGlobal(key, value); - return; - } else if (!unsafe) { - delete O[key]; - } else if (!noTargetGet && O[key]) { - simple2 = true; - } - if (simple2) - O[key] = value; - else - hide(O, key, 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(key, value) { - try { - hide(global2, key, value); - } catch (error) { - global2[key] = 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(key) { - return keys[key] || (keys[key] = uid(key)); - }; - }, - "./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(key, value) { - return store[key] || (store[key] = 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 first, second; - if (position < 0 || position >= size) - return CONVERT_TO_STRING ? "" : void 0; - first = S.charCodeAt(position); - return first < 55296 || first > 56319 || position + 1 === size || (second = S.charCodeAt(position + 1)) < 56320 || second > 57343 ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 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(key) { - return "Symbol(".concat(key === void 0 ? "" : key, ")_", (++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 key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - 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(instance4, Constructor) { - if (!(instance4 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(key) { - return key + '="' + attrs[key] + '"'; - }).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(key) { - return new _icon2.default(key, _icons2.default[key], _tags2.default[key]); - }).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 key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - 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"); - } - }); - }); - } -}); - -// src/main.ts -__export(exports, { - default: () => ObsidianGit -}); -var import_obsidian11 = __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. (See below setting for further configuration!) To disable automatic backup, specify negative value or zero (default)").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. To disable automatic pull, specify negative value or zero (default)").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("Commit message").setDesc("Specify custom commit message. Available placeholders: {{date}} (see below), {{hostname}} (see below) and {{numFiles}} (number of changed files in the commit)").addText((text2) => text2.setPlaceholder("vault backup").setValue(plugin.settings.commitMessage ? plugin.settings.commitMessage : "").onChange((value) => { - plugin.settings.commitMessage = 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(); - 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").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("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"); - }); - }); - } -}; - -// 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.messages = []; - this.statusBarEl = statusBarEl; - this.plugin = plugin; - } - 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.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.setText("git: checking repo status..."); - break; - case PluginState.add: - this.statusBarEl.setText("git: adding files to repo..."); - break; - case PluginState.commit: - this.statusBarEl.setText("git: committing changes..."); - break; - case PluginState.push: - this.statusBarEl.setText("git: pushing changes..."); - break; - case PluginState.pull: - this.statusBarEl.setText("git: pulling changes..."); - break; - case PluginState.conflicted: - this.statusBarEl.setText("git: you have conflict files..."); - break; - default: - this.statusBarEl.setText("git: failed on initialization!"); - break; - } - } - displayFromNow(timestamp) { - if (timestamp) { - let moment = window.moment; - let fromNow = moment(timestamp).fromNow(); - this.statusBarEl.setText(`git: last update ${fromNow}`); - } else { - this.statusBarEl.setText(`git: ready`); - } - } -}; - -// src/ui/modals/changedFilesModal.ts -var import_obsidian2 = __toModule(require("obsidian")); -var ChangedFilesModal = class extends import_obsidian2.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_obsidian3 = __toModule(require("obsidian")); -var CustomMessageModal = class extends import_obsidian3.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}}", - 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, - gitPath: "", - customMessageOnAutoBackup: false, - autoBackupAfterFileChange: false -}; -var VIEW_CONFIG = { - type: "git-view", - name: "Source Control", - icon: "feather-git-pull-request" -}; - -// src/simpleGit.ts -var import_child_process = __toModule(require("child_process")); -var path = __toModule(require("path")); -var simple = __toModule(require_src3()); - -// src/gitManager.ts -var GitManager = class { - constructor(plugin) { - this.plugin = plugin; - this.app = plugin.app; - } - formatCommitMessage(message) { - return __async(this, null, function* () { - let template = message != null ? message : this.plugin.settings.commitMessage; - 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() { - if (this.isGitInstalled()) { - const adapter = this.app.vault.adapter; - const path3 = adapter.getBasePath(); - this.git = (0, simple.default)({ - baseDir: path3, - binary: this.plugin.settings.gitPath || void 0, - config: ["core.quotepath=off"] - }); - } - } - status() { - return __async(this, null, function* () { - this.plugin.setState(PluginState.status); - const status = yield this.git.status(); - 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 "${message != null ? message : yield this.formatCommitMessage()}"; fi`], (err) => this.onError(err)); - } - this.plugin.setState(PluginState.add); - yield this.git.add("./*", (err) => this.onError(err)); - this.plugin.setState(PluginState.commit); - return (yield this.git.commit(yield this.formatCommitMessage(message))).summary.changes; - }); - } - commit(message) { - return __async(this, null, function* () { - this.plugin.setState(PluginState.commit); - const res = (yield this.git.commit(yield this.formatCommitMessage(message))).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("./*", (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 pullResult = yield this.git.pull(["--no-rebase"], (err) => __async(this, null, function* () { - if (err) { - this.plugin.displayError(`Pull failed ${err.message}`); - const status = yield this.git.status(); - if (status.conflicted.length > 0) { - this.plugin.handleConflict(status.conflicted); - } - } - })); - return pullResult.files.length; - }); - } - 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 - }; - }); - } - 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(); - } - isGitInstalled() { - const command = (0, import_child_process.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); - } - } -}; - -// node_modules/obsidian-community-lib/dist/utils.js -var feather = __toModule(require_feather()); -var import_obsidian4 = __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_obsidian4.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_obsidian4.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 _a; - if (leaf.view instanceof import_obsidian4.MarkdownView) { - const file = (_a = leaf.view) === null || _a === void 0 ? void 0 : _a.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"); -} - -// src/ui/modals/generalModal.ts -var import_obsidian5 = __toModule(require("obsidian")); -var GeneralModal = class extends import_obsidian5.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_obsidian10 = __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 append(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; -} -function append_stylesheet(node, style) { - append(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 listen(node, event, handler, options) { - node.addEventListener(event, handler, options); - return () => node.removeEventListener(event, handler, options); -} -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 active_docs = new Set(); -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_rule(node, a, b, duration, delay, 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); - active_docs.add(doc); - const stylesheet = doc.__svelte_stylesheet || (doc.__svelte_stylesheet = append_empty_stylesheet(node).sheet); - const current_rules = doc.__svelte_rules || (doc.__svelte_rules = {}); - if (!current_rules[name]) { - current_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 ${delay}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; - active_docs.forEach((doc) => { - const stylesheet = doc.__svelte_stylesheet; - let i = stylesheet.cssRules.length; - while (i--) - stylesheet.deleteRule(i); - doc.__svelte_rules = {}; - }); - active_docs.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 createEventDispatcher() { - const component = get_current_component(); - return (type, detail) => { - const callbacks = component.$$.callbacks[type]; - if (callbacks) { - const event = custom_event(type, detail); - callbacks.slice().forEach((fn) => { - fn.call(component, event); - }); - } - }; -} -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 flushing = false; -var seen_callbacks = new Set(); -function flush() { - if (flushing) - return; - flushing = true; - do { - for (let i = 0; i < dirty_components.length; i += 1) { - const component = dirty_components[i]; - set_current_component(component); - update(component.$$); - } - set_current_component(null); - dirty_components.length = 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; - flushing = false; - seen_callbacks.clear(); -} -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 = 0, duration = 300, easing = identity, tick: tick2 = noop, css } = config || null_transition; - const program = { - start: now() + delay, - 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, delay, 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, instance4, create_fragment4, 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 ready = false; - $$.ctx = instance4 ? instance4(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 (ready) - make_dirty(component, i); - } - return ret; - }) : []; - $$.update(); - ready = true; - run_all($$.before_update); - $$.fragment = create_fragment4 ? create_fragment4($$.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 key in this.$$.slotted) { - this.appendChild(this.$$.slotted[key]); - } - } - 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; - } - } -}; - -// src/ui/sidebar/gitView.svelte -var import_obsidian9 = __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 = 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, - 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_obsidian7 = __toModule(require("obsidian")); - -// src/ui/modals/discardModal.ts -var import_obsidian6 = __toModule(require("obsidian")); -var DiscardModal = class extends import_obsidian6.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("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-1ncg2cs", "main.svelte-1ncg2cs.svelte-1ncg2cs.svelte-1ncg2cs{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-1ncg2cs .path.svelte-1ncg2cs.svelte-1ncg2cs{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-1ncg2cs .path.svelte-1ncg2cs.svelte-1ncg2cs:hover{color:var(--text-normal);transition:all 200ms}main.svelte-1ncg2cs .tools.svelte-1ncg2cs.svelte-1ncg2cs{display:flex;align-items:center}main.svelte-1ncg2cs .tools .type.svelte-1ncg2cs.svelte-1ncg2cs{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-1ncg2cs .tools .type[data-type=M].svelte-1ncg2cs.svelte-1ncg2cs{color:orange}main.svelte-1ncg2cs .tools .type[data-type=D].svelte-1ncg2cs.svelte-1ncg2cs{color:red}main.svelte-1ncg2cs .tools .buttons.svelte-1ncg2cs.svelte-1ncg2cs{display:flex}main.svelte-1ncg2cs .tools .buttons.svelte-1ncg2cs>.svelte-1ncg2cs{color:var(--text-faint);height:16px;width:16px;margin:0;transition:all 0.2s;border-radius:2px;margin-right:1px}main.svelte-1ncg2cs .tools .buttons.svelte-1ncg2cs>.svelte-1ncg2cs:hover{color:var(--text-normal);background-color:var(--interactive-accent)}"); -} -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 div0; - let t2; - let div1; - let t3; - let span1; - let t4_value = ctx[0].working_dir + ""; - let t4; - let span1_data_type_value; - let mounted; - let dispose; - return { - c() { - main = element("main"); - span0 = element("span"); - t0 = text(t0_value); - t1 = space(); - div3 = element("div"); - div2 = element("div"); - div0 = element("div"); - t2 = space(); - div1 = element("div"); - t3 = space(); - span1 = element("span"); - t4 = text(t4_value); - attr(span0, "class", "path svelte-1ncg2cs"); - attr(span0, "aria-label-position", ctx[2]); - 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-1ncg2cs"); - attr(div1, "data-icon", "feather-plus"); - attr(div1, "aria-label", "Stage"); - attr(div1, "class", "svelte-1ncg2cs"); - attr(div2, "class", "buttons svelte-1ncg2cs"); - attr(span1, "class", "type svelte-1ncg2cs"); - attr(span1, "data-type", span1_data_type_value = ctx[0].working_dir); - attr(div3, "class", "tools svelte-1ncg2cs"); - attr(main, "class", "svelte-1ncg2cs"); - }, - m(target, anchor) { - insert(target, main, anchor); - append(main, span0); - append(span0, t0); - append(main, t1); - append(main, div3); - append(div3, div2); - append(div2, div0); - ctx[10](div0); - append(div2, t2); - append(div2, div1); - ctx[11](div1); - append(div3, t3); - append(div3, span1); - append(span1, t4); - if (!mounted) { - dispose = [ - listen(span0, "mouseover", ctx[3]), - listen(span0, "click", ctx[4]), - listen(span0, "focus", ctx[9]), - listen(div0, "click", ctx[6]), - listen(div1, "click", ctx[5]) - ]; - 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 & 4) { - attr(span0, "aria-label-position", ctx2[2]); - } - 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 & 1 && t4_value !== (t4_value = ctx2[0].working_dir + "")) - set_data(t4, t4_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); - ctx[10](null); - ctx[11](null); - mounted = false; - run_all(dispose); - } - }; -} -function instance($$self, $$props, $$invalidate) { - let side; - let { change } = $$props; - let { view } = $$props; - let { manager } = $$props; - let buttons = []; - setImmediate(() => buttons.forEach((b) => (0, import_obsidian7.setIcon)(b, b.getAttr("data-icon"), 16))); - const dispatch2 = createEventDispatcher(); - 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).then(() => { - dispatch2("git-refresh"); - }); - } - 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).then(() => { - dispatch2("git-refresh"); - }); - } else { - manager.discard(change.path).then(() => { - dispatch2("git-refresh"); - }); - } - } - }); - } - function focus_handler(event) { - bubble.call(this, $$self, event); - } - function div0_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[0] = $$value; - $$invalidate(1, buttons); - }); - } - function div1_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[1] = $$value; - $$invalidate(1, buttons); - }); - } - $$self.$$set = ($$props2) => { - if ("change" in $$props2) - $$invalidate(0, change = $$props2.change); - if ("view" in $$props2) - $$invalidate(7, view = $$props2.view); - if ("manager" in $$props2) - $$invalidate(8, manager = $$props2.manager); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty & 128) { - $: - $$invalidate(2, side = view.leaf.getRoot().side == "left" ? "right" : "left"); - } - }; - return [ - change, - buttons, - side, - hover, - open, - stage, - discard, - view, - manager, - focus_handler, - div0_binding, - div1_binding - ]; -} -var FileComponent = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance, create_fragment, safe_not_equal, { change: 0, view: 7, manager: 8 }, add_css); - } -}; -var fileComponent_default = FileComponent; - -// src/ui/sidebar/components/stagedFileComponent.svelte -var import_obsidian8 = __toModule(require("obsidian")); -function add_css2(target) { - append_styles(target, "svelte-1m5vxuz", "main.svelte-1m5vxuz.svelte-1m5vxuz.svelte-1m5vxuz{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-1m5vxuz .path.svelte-1m5vxuz.svelte-1m5vxuz{color:var(--text-muted);white-space:nowrap;max-width:75%;overflow:hidden;text-overflow:ellipsis}main.svelte-1m5vxuz .path.svelte-1m5vxuz.svelte-1m5vxuz:hover{color:var(--text-normal);transition:all 200ms}main.svelte-1m5vxuz .tools.svelte-1m5vxuz.svelte-1m5vxuz{display:flex;align-items:center}main.svelte-1m5vxuz .tools .type.svelte-1m5vxuz.svelte-1m5vxuz{height:16px;width:16px;margin:0;display:flex;align-items:center;justify-content:center}main.svelte-1m5vxuz .tools .type[data-type=M].svelte-1m5vxuz.svelte-1m5vxuz{color:orange}main.svelte-1m5vxuz .tools .type[data-type=D].svelte-1m5vxuz.svelte-1m5vxuz{color:red}main.svelte-1m5vxuz .tools .type[data-type=A].svelte-1m5vxuz.svelte-1m5vxuz{color:yellowgreen}main.svelte-1m5vxuz .tools .type[data-type=R].svelte-1m5vxuz.svelte-1m5vxuz{color:violet}main.svelte-1m5vxuz .tools .buttons.svelte-1m5vxuz.svelte-1m5vxuz{display:flex}main.svelte-1m5vxuz .tools .buttons.svelte-1m5vxuz>.svelte-1m5vxuz{color:var(--text-faint);height:16px;width:16px;margin:0;transition:all 0.2s;border-radius:2px;margin-right:1px}main.svelte-1m5vxuz .tools .buttons.svelte-1m5vxuz>.svelte-1m5vxuz:hover{color:var(--text-normal);background-color:var(--interactive-accent)}"); -} -function create_fragment2(ctx) { - let main; - let span0; - let t0_value = ctx[2].split("/").last().replace(".md", "") + ""; - let t0; - let span0_aria_label_value; - let t1; - let div2; - let div1; - let div0; - let t2; - let span1; - let t3_value = ctx[0].index + ""; - let t3; - let span1_data_type_value; - let mounted; - let dispose; - return { - c() { - main = element("main"); - span0 = element("span"); - t0 = text(t0_value); - t1 = space(); - div2 = element("div"); - div1 = element("div"); - div0 = element("div"); - t2 = space(); - span1 = element("span"); - t3 = text(t3_value); - attr(span0, "class", "path svelte-1m5vxuz"); - 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-minus"); - attr(div0, "aria-label", "Unstage"); - attr(div0, "class", "svelte-1m5vxuz"); - attr(div1, "class", "buttons svelte-1m5vxuz"); - attr(span1, "class", "type svelte-1m5vxuz"); - attr(span1, "data-type", span1_data_type_value = ctx[0].index); - attr(div2, "class", "tools svelte-1m5vxuz"); - attr(main, "class", "svelte-1m5vxuz"); - }, - m(target, anchor) { - insert(target, main, anchor); - append(main, span0); - append(span0, t0); - append(main, t1); - append(main, div2); - append(div2, div1); - append(div1, div0); - ctx[10](div0); - append(div2, t2); - append(div2, span1); - append(span1, t3); - if (!mounted) { - dispose = [ - listen(span0, "mouseover", ctx[4]), - listen(span0, "focus", ctx[9]), - listen(span0, "click", ctx[5]), - listen(div0, "click", ctx[6]) - ]; - mounted = true; - } - }, - p(ctx2, [dirty]) { - if (dirty & 4 && t0_value !== (t0_value = ctx2[2].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 & 1 && t3_value !== (t3_value = ctx2[0].index + "")) - set_data(t3, t3_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); - ctx[10](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 = []; - const dispatch2 = createEventDispatcher(); - setImmediate(() => buttons.forEach((b) => (0, import_obsidian8.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 unstage() { - manager.unstage(formattedPath).then(() => { - dispatch2("git-refresh"); - }); - } - function focus_handler(event) { - bubble.call(this, $$self, event); - } - function div0_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[0] = $$value; - $$invalidate(1, buttons); - }); - } - $$self.$$set = ($$props2) => { - if ("change" in $$props2) - $$invalidate(0, change = $$props2.change); - if ("view" in $$props2) - $$invalidate(7, view = $$props2.view); - if ("manager" in $$props2) - $$invalidate(8, manager = $$props2.manager); - }; - $$self.$$.update = () => { - if ($$self.$$.dirty & 1) { - $: - $$invalidate(2, formattedPath = change.path); - } - if ($$self.$$.dirty & 128) { - $: - $$invalidate(3, side = view.leaf.getRoot().side == "left" ? "right" : "left"); - } - }; - return [ - change, - buttons, - formattedPath, - side, - hover, - open, - unstage, - view, - manager, - focus_handler, - div0_binding - ]; -} -var StagedFileComponent = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance2, create_fragment2, safe_not_equal, { change: 0, view: 7, manager: 8 }, add_css2); - } -}; -var stagedFileComponent_default = StagedFileComponent; - -// src/ui/sidebar/gitView.svelte -function add_css3(target) { - append_styles(target, "svelte-f1l5rx", '@charset "UTF-8";.file-view.svelte-f1l5rx.svelte-f1l5rx{margin-left:5px}.opener.svelte-f1l5rx.svelte-f1l5rx{display:flex;justify-content:space-between;align-items:center;padding:0 4px}.opener.svelte-f1l5rx .collapse-icon.svelte-f1l5rx::after{content:"\xA0"}.opener.svelte-f1l5rx div.svelte-f1l5rx{display:flex}.opener.svelte-f1l5rx svg.svelte-f1l5rx{transform:rotate(-90deg)}.opener.open.svelte-f1l5rx svg.svelte-f1l5rx{transform:rotate(0)}.git-view-body.svelte-f1l5rx.svelte-f1l5rx{height:calc(100% - 5rem);overflow-y:scroll;padding-left:10px}main.svelte-f1l5rx.svelte-f1l5rx{height:100%;overflow-y:hidden}.nav-buttons-container.svelte-f1l5rx.svelte-f1l5rx{justify-content:space-between}.group.svelte-f1l5rx.svelte-f1l5rx{display:flex}'); -} -function get_each_context(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[27] = list[i]; - return child_ctx; -} -function get_each_context_1(ctx, list, i) { - const child_ctx = ctx.slice(); - child_ctx[30] = list[i]; - return child_ctx; -} -function create_if_block_3(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[21]); - mounted = true; - } - }, - p: noop, - d(detaching) { - if (detaching) - detach(div); - mounted = false; - dispose(); - } - }; -} -function create_if_block(ctx) { - let div3; - let div2; - let div1; - let t2; - let span1; - let t3_value = ctx[4].staged.length + ""; - let t3; - let t4; - let t5; - let div7; - let div6; - let div5; - let t8; - let span3; - let t9_value = ctx[4].changed.length + ""; - let t9; - let t10; - let current; - let mounted; - let dispose; - let if_block0 = ctx[6] && create_if_block_2(ctx); - let if_block1 = ctx[5] && create_if_block_1(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-f1l5rx"); - attr(span1, "class", "tree-item-flair"); - attr(div2, "class", "opener tree-item-self is-clickable svelte-f1l5rx"); - toggle_class(div2, "open", ctx[6]); - attr(div3, "class", "staged"); - attr(div5, "class", "svelte-f1l5rx"); - attr(span3, "class", "tree-item-flair"); - attr(div6, "class", "opener tree-item-self is-clickable svelte-f1l5rx"); - toggle_class(div6, "open", ctx[5]); - attr(div7, "class", "changes"); - }, - m(target, anchor) { - insert(target, div3, anchor); - append(div3, div2); - append(div2, div1); - append(div2, t2); - append(div2, span1); - append(span1, t3); - append(div3, t4); - if (if_block0) - if_block0.m(div3, null); - insert(target, t5, anchor); - insert(target, div7, anchor); - append(div7, div6); - append(div6, div5); - append(div6, t8); - append(div6, span3); - append(span3, t9); - append(div7, t10); - if (if_block1) - if_block1.m(div7, null); - current = true; - if (!mounted) { - dispose = [ - listen(div2, "click", ctx[22]), - listen(div6, "click", ctx[23]) - ]; - mounted = true; - } - }, - p(ctx2, dirty) { - if ((!current || dirty[0] & 16) && t3_value !== (t3_value = ctx2[4].staged.length + "")) - set_data(t3, t3_value); - if (dirty[0] & 64) { - toggle_class(div2, "open", ctx2[6]); - } - if (ctx2[6]) { - if (if_block0) { - if_block0.p(ctx2, dirty); - if (dirty[0] & 64) { - transition_in(if_block0, 1); - } - } else { - if_block0 = create_if_block_2(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] & 16) && t9_value !== (t9_value = ctx2[4].changed.length + "")) - set_data(t9, t9_value); - if (dirty[0] & 32) { - toggle_class(div6, "open", ctx2[5]); - } - if (ctx2[5]) { - if (if_block1) { - if_block1.p(ctx2, dirty); - if (dirty[0] & 32) { - transition_in(if_block1, 1); - } - } else { - if_block1 = create_if_block_1(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_2(ctx) { - let div; - let div_transition; - let current; - let each_value_1 = ctx[4].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() { - div = element("div"); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div, "class", "file-view svelte-f1l5rx"); - }, - m(target, anchor) { - insert(target, div, anchor); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(div, null); - } - current = true; - }, - p(ctx2, dirty) { - if (dirty[0] & 531) { - each_value_1 = ctx2[4].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(div, null); - } - } - 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]); - } - 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) { - each_blocks = each_blocks.filter(Boolean); - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); - } - 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); - destroy_each(each_blocks, detaching); - if (detaching && div_transition) - div_transition.end(); - } - }; -} -function create_each_block_1(ctx) { - let stagedfilecomponent; - let current; - stagedfilecomponent = new stagedFileComponent_default({ - props: { - change: ctx[30], - view: ctx[1], - manager: ctx[0].gitManager - } - }); - stagedfilecomponent.$on("git-refresh", ctx[9]); - 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] & 16) - stagedfilecomponent_changes.change = ctx2[30]; - 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_1(ctx) { - let div; - let div_transition; - let current; - let each_value = ctx[4].changed; - 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() { - div = element("div"); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].c(); - } - attr(div, "class", "file-view svelte-f1l5rx"); - }, - m(target, anchor) { - insert(target, div, anchor); - for (let i = 0; i < each_blocks.length; i += 1) { - each_blocks[i].m(div, null); - } - current = true; - }, - p(ctx2, dirty) { - if (dirty[0] & 531) { - each_value = ctx2[4].changed; - 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(div, null); - } - } - 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]); - } - 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) { - each_blocks = each_blocks.filter(Boolean); - for (let i = 0; i < each_blocks.length; i += 1) { - transition_out(each_blocks[i]); - } - 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); - destroy_each(each_blocks, detaching); - if (detaching && div_transition) - div_transition.end(); - } - }; -} -function create_each_block(ctx) { - let filecomponent; - let current; - filecomponent = new fileComponent_default({ - props: { - change: ctx[27], - view: ctx[1], - manager: ctx[0].gitManager - } - }); - filecomponent.$on("git-refresh", ctx[9]); - 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] & 16) - filecomponent_changes.change = ctx2[27]; - if (dirty[0] & 2) - filecomponent_changes.view = ctx2[1]; - if (dirty[0] & 1) - filecomponent_changes.manager = ctx2[0].gitManager; - 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_fragment3(ctx) { - let main; - let div8; - let div5; - let div0; - let t0; - let div1; - let t1; - let div2; - let t2; - let div3; - let t3; - let div4; - let t4; - let div6; - let t5; - let div7; - let input; - let t6; - let t7; - let div9; - let current; - let mounted; - let dispose; - let if_block0 = ctx[2] && create_if_block_3(ctx); - let if_block1 = ctx[4] && create_if_block(ctx); - return { - c() { - main = element("main"); - div8 = element("div"); - div5 = 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(); - div6 = element("div"); - t5 = space(); - div7 = element("div"); - input = element("input"); - t6 = space(); - if (if_block0) - if_block0.c(); - t7 = space(); - div9 = 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, "class", "group svelte-f1l5rx"); - attr(div6, "id", "refresh"); - attr(div6, "class", "nav-action-button"); - attr(div6, "data-icon", "feather-refresh-cw"); - attr(div6, "aria-label", "Refresh"); - toggle_class(div6, "loading", ctx[7]); - attr(input, "type", "text"); - attr(input, "spellcheck", "true"); - attr(input, "placeholder", "Commit Message"); - attr(div7, "class", "search-input-container"); - attr(div8, "class", "nav-buttons-container svelte-f1l5rx"); - attr(div9, "class", "git-view-body svelte-f1l5rx"); - attr(main, "class", "svelte-f1l5rx"); - }, - m(target, anchor) { - insert(target, main, anchor); - append(main, div8); - append(div8, div5); - append(div5, div0); - ctx[14](div0); - append(div5, t0); - append(div5, div1); - ctx[15](div1); - append(div5, t1); - append(div5, div2); - ctx[16](div2); - append(div5, t2); - append(div5, div3); - ctx[17](div3); - append(div5, t3); - append(div5, div4); - ctx[18](div4); - append(div8, t4); - append(div8, div6); - ctx[19](div6); - append(div8, t5); - append(div8, div7); - append(div7, input); - set_input_value(input, ctx[2]); - append(div7, t6); - if (if_block0) - if_block0.m(div7, null); - append(main, t7); - append(main, div9); - if (if_block1) - if_block1.m(div9, null); - current = true; - if (!mounted) { - dispose = [ - listen(div0, "click", ctx[8]), - listen(div1, "click", ctx[10]), - listen(div2, "click", ctx[11]), - listen(div3, "click", ctx[12]), - listen(div4, "click", ctx[13]), - listen(div6, "click", ctx[9]), - listen(input, "input", ctx[20]) - ]; - mounted = true; - } - }, - p(ctx2, dirty) { - if (dirty[0] & 128) { - toggle_class(div6, "loading", ctx2[7]); - } - if (dirty[0] & 4 && input.value !== ctx2[2]) { - set_input_value(input, ctx2[2]); - } - if (ctx2[2]) { - if (if_block0) { - if_block0.p(ctx2, dirty); - } else { - if_block0 = create_if_block_3(ctx2); - if_block0.c(); - if_block0.m(div7, null); - } - } else if (if_block0) { - if_block0.d(1); - if_block0 = null; - } - if (ctx2[4]) { - if (if_block1) { - if_block1.p(ctx2, dirty); - if (dirty[0] & 16) { - transition_in(if_block1, 1); - } - } else { - if_block1 = create_if_block(ctx2); - if_block1.c(); - transition_in(if_block1, 1); - if_block1.m(div9, 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[14](null); - ctx[15](null); - ctx[16](null); - ctx[17](null); - ctx[18](null); - ctx[19](null); - if (if_block0) - if_block0.d(); - if (if_block1) - if_block1.d(); - mounted = false; - run_all(dispose); - } - }; -} -function instance3($$self, $$props, $$invalidate) { - let { plugin } = $$props; - let { view } = $$props; - let commitMessage = plugin.settings.commitMessage; - let buttons = []; - let status; - let changesOpen = true; - let stagedOpen = true; - let loading = true; - const debRefresh = (0, import_obsidian9.debounce)(() => refresh(), 3e5); - const interval = window.setInterval(refresh, 6e5); - let event; - plugin.app.workspace.onLayoutReady(() => setImmediate(() => { - buttons.forEach((btn) => (0, import_obsidian9.setIcon)(btn, btn.getAttr("data-icon"), 16)); - refresh(); - event = plugin.app.metadataCache.on("resolved", () => { - debRefresh(); - }); - plugin.registerInterval(interval); - plugin.registerEvent(event); - })); - onDestroy(() => { - window.clearInterval(interval); - plugin.app.metadataCache.offref(event); - }); - function commit() { - $$invalidate(7, loading = true); - plugin.gitManager.commit(commitMessage).then(() => { - if (commitMessage !== plugin.settings.commitMessage) { - $$invalidate(2, commitMessage = ""); - } - refresh(); - }); - } - function refresh() { - const promise2 = plugin.gitManager.status(); - $$invalidate(7, loading = true); - promise2.then((s) => { - $$invalidate(4, status = s); - $$invalidate(7, loading = false); - }); - } - function stageAll() { - $$invalidate(7, loading = true); - plugin.gitManager.stageAll().then(() => { - refresh(); - }); - } - function unstageAll() { - $$invalidate(7, loading = true); - plugin.gitManager.unstageAll().then(() => { - refresh(); - }); - } - function push() { - $$invalidate(7, loading = true); - plugin.remotesAreSet().then((ready) => { - if (ready) { - plugin.gitManager.push().then((pushedFiles) => { - plugin.displayMessage(`Pushed ${pushedFiles} files to remote`); - refresh(); - }); - } - }); - } - function pull() { - $$invalidate(7, loading = true); - plugin.pullChangesFromRemote().then(() => { - refresh(); - }); - } - function div0_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[0] = $$value; - $$invalidate(3, buttons); - }); - } - function div1_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[1] = $$value; - $$invalidate(3, buttons); - }); - } - function div2_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[2] = $$value; - $$invalidate(3, buttons); - }); - } - function div3_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[3] = $$value; - $$invalidate(3, buttons); - }); - } - function div4_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[4] = $$value; - $$invalidate(3, buttons); - }); - } - function div6_binding($$value) { - binding_callbacks[$$value ? "unshift" : "push"](() => { - buttons[5] = $$value; - $$invalidate(3, buttons); - }); - } - function input_input_handler() { - commitMessage = this.value; - $$invalidate(2, commitMessage); - } - const click_handler = () => $$invalidate(2, commitMessage = ""); - const click_handler_1 = () => $$invalidate(6, stagedOpen = !stagedOpen); - const click_handler_2 = () => $$invalidate(5, changesOpen = !changesOpen); - $$self.$$set = ($$props2) => { - if ("plugin" in $$props2) - $$invalidate(0, plugin = $$props2.plugin); - if ("view" in $$props2) - $$invalidate(1, view = $$props2.view); - }; - return [ - plugin, - view, - commitMessage, - buttons, - status, - changesOpen, - stagedOpen, - loading, - commit, - refresh, - stageAll, - unstageAll, - push, - pull, - div0_binding, - div1_binding, - div2_binding, - div3_binding, - div4_binding, - div6_binding, - input_input_handler, - click_handler, - click_handler_1, - click_handler_2 - ]; -} -var GitView = class extends SvelteComponent { - constructor(options) { - super(); - init(this, options, instance3, create_fragment3, safe_not_equal, { plugin: 0, view: 1 }, add_css3, [-1, -1]); - } -}; -var gitView_default = GitView; - -// src/ui/sidebar/sidebarView.ts -var GitView2 = class extends import_obsidian10.ItemView { - constructor(leaf, plugin) { - super(leaf); - this.plugin = plugin; - this.hoverPopover = null; - } - getViewType() { - return VIEW_CONFIG.type; - } - getDisplayText() { - return VIEW_CONFIG.name; - } - getIcon() { - return 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_obsidian11.Plugin { - constructor() { - super(...arguments); - this.gitReady = false; - this.promiseQueue = new PromiseQueue(); - this.conflictOutputFile = "conflict-files-obsidian-git.md"; - } - setState(state) { - var _a; - this.state = state; - (_a = this.statusBar) == null ? void 0 : _a.display(); - } - onload() { - return __async(this, null, function* () { - console.log("loading " + this.manifest.name + " plugin"); - yield this.loadSettings(); - addIcons(); - this.registerView(VIEW_CONFIG.type, (leaf) => { - return new GitView2(leaf, this); - }); - this.app.workspace.registerHoverLinkSource(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(VIEW_CONFIG.type).length === 0) { - yield this.app.workspace.getRightLeaf(false).setViewState({ - type: VIEW_CONFIG.type - }); - } - this.app.workspace.revealLeaf(this.app.workspace.getLeavesOfType(VIEW_CONFIG.type).first()); - }) - }); - this.addCommand({ - id: "pull", - name: "Pull from remote repository", - callback: () => this.promiseQueue.addTask(() => this.pullChangesFromRemote()) - }); - this.addCommand({ - id: "push", - name: "Create backup", - callback: () => this.promiseQueue.addTask(() => this.createBackup(false)) - }); - 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: "commit-push-specified-message", - name: "Create backup with specified message", - callback: () => this.promiseQueue.addTask(() => this.createBackup(false, true)) - }); - 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()); - }); - } - onunload() { - return __async(this, null, function* () { - this.app.workspace.unregisterHoverLinkSource(VIEW_CONFIG.type); - this.app.workspace.detachLeavesOfType(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 _a, _b; - return { - "backup": new Date((_a = window.localStorage.getItem(this.manifest.id + ":lastAutoBackup")) != null ? _a : ""), - "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_obsidian11.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); - 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_obsidian11.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_obsidian11.Notice(`Cloning new repo into "${dir}"`); - yield this.gitManager.clone(url, dir); - new import_obsidian11.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.gitManager.pull(); - if (filesUpdated > 0) { - this.displayMessage(`Pulled new changes. ${filesUpdated} files updated`); - } else { - 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 files`); - } - } - 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 files. Please resolve them and commit per command.`); - this.handleConflict(status.conflicted); - return; - } - } - const changedFiles = (yield this.gitManager.status()).changed; - if (changedFiles.length !== 0) { - let commitMessage; - if (fromAutoBackup && this.settings.customMessageOnAutoBackup || requestCustomMessage) { - if (!this.settings.disablePopups && fromAutoBackup) { - new import_obsidian11.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; - } - } - const commitedFiles = yield this.gitManager.commitAll(commitMessage); - this.displayMessage(`Committed ${commitedFiles} files`); - } else { - this.displayMessage("No changes to commit"); - } - if (!this.settings.disablePush) { - if (!this.remotesAreSet()) { - return; - } - if (yield this.gitManager.canPush()) { - if (this.settings.pullBeforePush) { - const pulledFilesLength = yield this.gitManager.pull(); - if (pulledFilesLength > 0) { - this.displayMessage(`Pulled ${pulledFilesLength} files from remote`); - } - } - 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 files`); - this.handleConflict(status.conflicted); - return; - } else { - const pushedFiles = yield this.gitManager.push(); - this.lastUpdate = Date.now(); - this.displayMessage(`Pushed ${pushedFiles} files to remote`); - } - } else { - this.displayMessage("No changes to push"); - } - } - this.setState(PluginState.idle); - }); - } - remotesAreSet() { - return __async(this, null, function* () { - if (!(yield this.gitManager.branchInfo()).tracking) { - new import_obsidian11.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_obsidian11.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 _a; - let wasActive = false; - if (this.timeoutIDBackup) { - window.clearTimeout(this.timeoutIDBackup); - this.timeoutIDBackup = void 0; - wasActive = true; - } - if (this.onFileModifyEventRef) { - (_a = this.autoBackupDebouncer) == null ? void 0 : _a.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_obsidian11.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 _a; - (_a = this.statusBar) == null ? void 0 : _a.displayMessage(message.toLowerCase(), timeout); - if (!this.settings.disablePopups) { - new import_obsidian11.Notice(message); - } - console.log(`git obsidian message: ${message}`); - } - displayError(message, timeout = 0) { - var _a; - message = message.toString(); - new import_obsidian11.Notice(message); - console.log(`git obsidian error: ${message}`); - (_a = this.statusBar) == null ? void 0 : _a.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 deleted file mode 100644 index 4d4d5eaa..00000000 --- a/.obsidian/plugins/obsidian-git/manifest.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "id": "obsidian-git", - "name": "Obsidian Git", - "description": "Backup your vault with git.", - "isDesktopOnly": true, - "js": "main.js", - "version": "1.17.0" -} diff --git a/.obsidian/plugins/obsidian-git/styles.css b/.obsidian/plugins/obsidian-git/styles.css deleted file mode 100644 index 4c113e12..00000000 --- a/.obsidian/plugins/obsidian-git/styles.css +++ /dev/null @@ -1,24 +0,0 @@ -@keyframes loading { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -.loading > svg { - animation: 2s linear infinite loading; - transform-origin: 50% 50%; - display: inline-block; -} -.center{ - margin: auto; - width: 50%; -} -.tooltip.mod-left { - overflow-wrap: break-word; -} -.tooltip.mod-right { - overflow-wrap: break-word; -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-hider/data.json b/.obsidian/plugins/obsidian-hider/data.json deleted file mode 100644 index 0848a8fd..00000000 --- a/.obsidian/plugins/obsidian-hider/data.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "frameless": false, - "hideRibbon": false, - "hideStatus": true, - "hideScroll": true, - "hideTooltips": true, - "hideSearchSuggestions": false, - "hideInstructions": true, - "hideMeta": true -} \ No newline at end of file diff --git a/.obsidian/plugins/obsidian-hider/main.js b/.obsidian/plugins/obsidian-hider/main.js deleted file mode 100644 index 38400ef7..00000000 --- a/.obsidian/plugins/obsidian-hider/main.js +++ /dev/null @@ -1,266 +0,0 @@ -'use strict'; - -var obsidian = require('obsidian'); - -/*! ***************************************************************************** -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. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - 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]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -function __awaiter(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()); - }); -} - -function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; - function verb(n) { return function (v) { return step([n, v]); }; } - function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; - } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; - } -} - -var Hider = /** @class */ (function (_super) { - __extends(Hider, _super); - function Hider() { - var _this = _super !== null && _super.apply(this, arguments) || this; - // refresh function for when we change settings - _this.refresh = function () { - // re-load the style - _this.updateStyle(); - }; - // update the styles (at the start, or as the result of a settings change) - _this.updateStyle = function () { - document.body.classList.toggle('hider-ribbon', _this.settings.hideRibbon); - document.body.classList.toggle('hider-status', _this.settings.hideStatus); - document.body.classList.toggle('hider-frameless', _this.settings.frameless); - document.body.classList.toggle('hider-scroll', _this.settings.hideScroll); - document.body.classList.toggle('hider-tooltips', _this.settings.hideTooltips); - document.body.classList.toggle('hider-search-suggestions', _this.settings.hideSearchSuggestions); - document.body.classList.toggle('hider-instructions', _this.settings.hideInstructions); - document.body.classList.toggle('hider-meta', _this.settings.hideMeta); - }; - return _this; - } - Hider.prototype.onload = function () { - return __awaiter(this, void 0, void 0, function () { - var _this = this; - return __generator(this, function (_a) { - switch (_a.label) { - case 0: - // load settings - return [4 /*yield*/, this.loadSettings()]; - case 1: - // load settings - _a.sent(); - // add the settings tab - this.addSettingTab(new HiderSettingTab(this.app, this)); - // add the toggle on/off command - this.addCommand({ - id: 'toggle-app-ribbon', - name: 'Toggle App Ribbon', - callback: function () { - // switch the setting, save and refresh - _this.settings.hideRibbon = !_this.settings.hideRibbon; - _this.saveData(_this.settings); - _this.refresh(); - } - }); - this.addCommand({ - id: 'toggle-hider-status', - name: 'Toggle Status Bar', - callback: function () { - // switch the setting, save and refresh - _this.settings.hideStatus = !_this.settings.hideStatus; - _this.saveData(_this.settings); - _this.refresh(); - } - }); - this.refresh(); - return [2 /*return*/]; - } - }); - }); - }; - Hider.prototype.onunload = function () { - console.log('Unloading Hider plugin'); - }; - Hider.prototype.loadSettings = function () { - return __awaiter(this, void 0, void 0, function () { - var _a, _b, _c, _d; - return __generator(this, function (_e) { - switch (_e.label) { - case 0: - _a = this; - _c = (_b = Object).assign; - _d = [DEFAULT_SETTINGS]; - return [4 /*yield*/, this.loadData()]; - case 1: - _a.settings = _c.apply(_b, _d.concat([_e.sent()])); - return [2 /*return*/]; - } - }); - }); - }; - Hider.prototype.saveSettings = function () { - return __awaiter(this, void 0, void 0, function () { - return __generator(this, function (_a) { - switch (_a.label) { - case 0: return [4 /*yield*/, this.saveData(this.settings)]; - case 1: - _a.sent(); - return [2 /*return*/]; - } - }); - }); - }; - return Hider; -}(obsidian.Plugin)); -var DEFAULT_SETTINGS = { - frameless: false, - hideRibbon: false, - hideStatus: false, - hideScroll: false, - hideTooltips: false, - hideSearchSuggestions: false, - hideInstructions: false, - hideMeta: false -}; -var HiderSettingTab = /** @class */ (function (_super) { - __extends(HiderSettingTab, _super); - function HiderSettingTab(app, plugin) { - var _this = _super.call(this, app, plugin) || this; - _this.plugin = plugin; - return _this; - } - HiderSettingTab.prototype.display = function () { - var _this = this; - var containerEl = this.containerEl; - containerEl.empty(); - new obsidian.Setting(containerEl) - .setName('Hide title bar (frameless mode)') - .setDesc('Hides the title bar (best on macOS)') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.frameless) - .onChange(function (value) { - _this.plugin.settings.frameless = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide app ribbon') - .setDesc('Hides the Obsidian menu. Warning: to open Settings you will need use the hotkey (default is CMD + ,)') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideRibbon) - .onChange(function (value) { - _this.plugin.settings.hideRibbon = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide status bar') - .setDesc('Hides word count, character count and backlink count') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideStatus) - .onChange(function (value) { - _this.plugin.settings.hideStatus = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide scroll bars') - .setDesc('Hides all scroll bars') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideScroll) - .onChange(function (value) { - _this.plugin.settings.hideScroll = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide tooltips') - .setDesc('Hides all tooltips') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideTooltips) - .onChange(function (value) { - _this.plugin.settings.hideTooltips = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide instructions') - .setDesc('Hides instructional tips in modals') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideInstructions) - .onChange(function (value) { - _this.plugin.settings.hideInstructions = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide search suggestions') - .setDesc('Hides suggestions in search pane') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideSearchSuggestions) - .onChange(function (value) { - _this.plugin.settings.hideSearchSuggestions = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - new obsidian.Setting(containerEl) - .setName('Hide metadata block in Preview mode') - .setDesc('When front matter is turned off in your Editor settings this hides the metadata block') - .addToggle(function (toggle) { return toggle.setValue(_this.plugin.settings.hideMeta) - .onChange(function (value) { - _this.plugin.settings.hideMeta = value; - _this.plugin.saveData(_this.plugin.settings); - _this.plugin.refresh(); - }); }); - }; - return HiderSettingTab; -}(obsidian.PluginSettingTab)); - -module.exports = Hider; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHsgQXBwLCBNb2RhbCwgTm90aWNlLCBQbHVnaW4sIFBsdWdpblNldHRpbmdUYWIsIFNldHRpbmcgfSBmcm9tICdvYnNpZGlhbic7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIaWRlciBleHRlbmRzIFBsdWdpbiB7XHJcbiAgc2V0dGluZ3M6IEhpZGVyU2V0dGluZ3M7XHJcblxyXG4gIGFzeW5jIG9ubG9hZCgpIHtcclxuICAgIC8vIGxvYWQgc2V0dGluZ3NcclxuICAgIGF3YWl0IHRoaXMubG9hZFNldHRpbmdzKCk7XHJcblxyXG4gICAgLy8gYWRkIHRoZSBzZXR0aW5ncyB0YWJcclxuICAgIHRoaXMuYWRkU2V0dGluZ1RhYihuZXcgSGlkZXJTZXR0aW5nVGFiKHRoaXMuYXBwLCB0aGlzKSk7XHJcbiAgICAvLyBhZGQgdGhlIHRvZ2dsZSBvbi9vZmYgY29tbWFuZFxyXG5cclxuICAgIHRoaXMuYWRkQ29tbWFuZCh7XHJcbiAgICAgIGlkOiAndG9nZ2xlLWFwcC1yaWJib24nLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIEFwcCBSaWJib24nLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIC8vIHN3aXRjaCB0aGUgc2V0dGluZywgc2F2ZSBhbmQgcmVmcmVzaFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaGlkZVJpYmJvbiA9ICF0aGlzLnNldHRpbmdzLmhpZGVSaWJib247XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFkZENvbW1hbmQoe1xyXG4gICAgICBpZDogJ3RvZ2dsZS1oaWRlci1zdGF0dXMnLFxyXG4gICAgICBuYW1lOiAnVG9nZ2xlIFN0YXR1cyBCYXInLFxyXG4gICAgICBjYWxsYmFjazogKCkgPT4ge1xyXG4gICAgICAgIC8vIHN3aXRjaCB0aGUgc2V0dGluZywgc2F2ZSBhbmQgcmVmcmVzaFxyXG4gICAgICAgIHRoaXMuc2V0dGluZ3MuaGlkZVN0YXR1cyA9ICF0aGlzLnNldHRpbmdzLmhpZGVTdGF0dXM7XHJcbiAgICAgICAgdGhpcy5zYXZlRGF0YSh0aGlzLnNldHRpbmdzKTtcclxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlZnJlc2goKVxyXG4gIH1cclxuXHJcbiAgb251bmxvYWQoKSB7XHJcbiAgICBjb25zb2xlLmxvZygnVW5sb2FkaW5nIEhpZGVyIHBsdWdpbicpO1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgbG9hZFNldHRpbmdzKCkge1xyXG4gICAgdGhpcy5zZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oREVGQVVMVF9TRVRUSU5HUywgYXdhaXQgdGhpcy5sb2FkRGF0YSgpKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHNhdmVTZXR0aW5ncygpIHtcclxuICAgIGF3YWl0IHRoaXMuc2F2ZURhdGEodGhpcy5zZXR0aW5ncyk7XHJcbiAgfVxyXG5cclxuICAvLyByZWZyZXNoIGZ1bmN0aW9uIGZvciB3aGVuIHdlIGNoYW5nZSBzZXR0aW5nc1xyXG4gIHJlZnJlc2ggPSAoKSA9PiB7XHJcbiAgICAvLyByZS1sb2FkIHRoZSBzdHlsZVxyXG4gICAgdGhpcy51cGRhdGVTdHlsZSgpXHJcbiAgfVxyXG5cclxuICAvLyB1cGRhdGUgdGhlIHN0eWxlcyAoYXQgdGhlIHN0YXJ0LCBvciBhcyB0aGUgcmVzdWx0IG9mIGEgc2V0dGluZ3MgY2hhbmdlKVxyXG4gIHVwZGF0ZVN0eWxlID0gKCkgPT4ge1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1yaWJib24nLCB0aGlzLnNldHRpbmdzLmhpZGVSaWJib24pO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zdGF0dXMnLCB0aGlzLnNldHRpbmdzLmhpZGVTdGF0dXMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1mcmFtZWxlc3MnLCB0aGlzLnNldHRpbmdzLmZyYW1lbGVzcyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLXNjcm9sbCcsIHRoaXMuc2V0dGluZ3MuaGlkZVNjcm9sbCk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLXRvb2x0aXBzJywgdGhpcy5zZXR0aW5ncy5oaWRlVG9vbHRpcHMpO1xyXG4gICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QudG9nZ2xlKCdoaWRlci1zZWFyY2gtc3VnZ2VzdGlvbnMnLCB0aGlzLnNldHRpbmdzLmhpZGVTZWFyY2hTdWdnZXN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLWluc3RydWN0aW9ucycsIHRoaXMuc2V0dGluZ3MuaGlkZUluc3RydWN0aW9ucyk7XHJcbiAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC50b2dnbGUoJ2hpZGVyLW1ldGEnLCB0aGlzLnNldHRpbmdzLmhpZGVNZXRhKTtcclxuXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuXHJcblxyXG5pbnRlcmZhY2UgSGlkZXJTZXR0aW5ncyB7XHJcbiAgZnJhbWVsZXNzOiBib29sZWFuO1xyXG4gIGhpZGVSaWJib246IGJvb2xlYW47XHJcbiAgaGlkZVN0YXR1czogYm9vbGVhbjtcclxuICBoaWRlU2Nyb2xsOiBib29sZWFuO1xyXG4gIGhpZGVUb29sdGlwczogYm9vbGVhbjtcclxuICBoaWRlU2VhcmNoU3VnZ2VzdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZUluc3RydWN0aW9uczogYm9vbGVhbjtcclxuICBoaWRlTWV0YTogYm9vbGVhbjtcclxufVxyXG5jb25zdCBERUZBVUxUX1NFVFRJTkdTOiBIaWRlclNldHRpbmdzID0ge1xyXG4gIGZyYW1lbGVzczogZmFsc2UsXHJcbiAgaGlkZVJpYmJvbjogZmFsc2UsXHJcbiAgaGlkZVN0YXR1czogZmFsc2UsXHJcbiAgaGlkZVNjcm9sbDogZmFsc2UsXHJcbiAgaGlkZVRvb2x0aXBzOiBmYWxzZSxcclxuICBoaWRlU2VhcmNoU3VnZ2VzdGlvbnM6IGZhbHNlLFxyXG4gIGhpZGVJbnN0cnVjdGlvbnM6IGZhbHNlLFxyXG4gIGhpZGVNZXRhOiBmYWxzZVxyXG59XHJcblxyXG5jbGFzcyBIaWRlclNldHRpbmdUYWIgZXh0ZW5kcyBQbHVnaW5TZXR0aW5nVGFiIHtcclxuXHJcblxyXG4gIHBsdWdpbjogSGlkZXI7XHJcbiAgY29uc3RydWN0b3IoYXBwOiBBcHAsIHBsdWdpbjogSGlkZXIpIHtcclxuICAgIHN1cGVyKGFwcCwgcGx1Z2luKTtcclxuICAgIHRoaXMucGx1Z2luID0gcGx1Z2luO1xyXG4gIH1cclxuXHJcbiAgZGlzcGxheSgpOiB2b2lkIHtcclxuICAgIGxldCB7Y29udGFpbmVyRWx9ID0gdGhpcztcclxuXHJcbiAgICBjb250YWluZXJFbC5lbXB0eSgpO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSB0aXRsZSBiYXIgKGZyYW1lbGVzcyBtb2RlKScpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyB0aGUgdGl0bGUgYmFyIChiZXN0IG9uIG1hY09TKScpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5mcmFtZWxlc3MpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmZyYW1lbGVzcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcbiAgICAgIFxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIGFwcCByaWJib24nKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgdGhlIE9ic2lkaWFuIG1lbnUuIFdhcm5pbmc6IHRvIG9wZW4gU2V0dGluZ3MgeW91IHdpbGwgbmVlZCB1c2UgdGhlIGhvdGtleSAoZGVmYXVsdCBpcyBDTUQgKyAsKScpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlUmliYm9uKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlUmliYm9uID0gdmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNhdmVEYXRhKHRoaXMucGx1Z2luLnNldHRpbmdzKTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4ucmVmcmVzaCgpO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKTtcclxuXHJcbiAgICBuZXcgU2V0dGluZyhjb250YWluZXJFbClcclxuICAgICAgLnNldE5hbWUoJ0hpZGUgc3RhdHVzIGJhcicpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyB3b3JkIGNvdW50LCBjaGFyYWN0ZXIgY291bnQgYW5kIGJhY2tsaW5rIGNvdW50JylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVTdGF0dXMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVTdGF0dXMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzY3JvbGwgYmFycycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBhbGwgc2Nyb2xsIGJhcnMnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbClcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNjcm9sbCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIHRvb2x0aXBzJylcclxuICAgICAgLnNldERlc2MoJ0hpZGVzIGFsbCB0b29sdGlwcycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlVG9vbHRpcHMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVUb29sdGlwcyA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zYXZlRGF0YSh0aGlzLnBsdWdpbi5zZXR0aW5ncyk7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnJlZnJlc2goKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICk7XHJcblxyXG4gICAgbmV3IFNldHRpbmcoY29udGFpbmVyRWwpXHJcbiAgICAgIC5zZXROYW1lKCdIaWRlIGluc3RydWN0aW9ucycpXHJcbiAgICAgIC5zZXREZXNjKCdIaWRlcyBpbnN0cnVjdGlvbmFsIHRpcHMgaW4gbW9kYWxzJylcclxuICAgICAgLmFkZFRvZ2dsZSh0b2dnbGUgPT4gdG9nZ2xlLnNldFZhbHVlKHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVJbnN0cnVjdGlvbnMpXHJcbiAgICAgICAgICAub25DaGFuZ2UoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucGx1Z2luLnNldHRpbmdzLmhpZGVJbnN0cnVjdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBzZWFyY2ggc3VnZ2VzdGlvbnMnKVxyXG4gICAgICAuc2V0RGVzYygnSGlkZXMgc3VnZ2VzdGlvbnMgaW4gc2VhcmNoIHBhbmUnKVxyXG4gICAgICAuYWRkVG9nZ2xlKHRvZ2dsZSA9PiB0b2dnbGUuc2V0VmFsdWUodGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZVNlYXJjaFN1Z2dlc3Rpb25zKVxyXG4gICAgICAgICAgLm9uQ2hhbmdlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlU2VhcmNoU3VnZ2VzdGlvbnMgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuICAgIG5ldyBTZXR0aW5nKGNvbnRhaW5lckVsKVxyXG4gICAgICAuc2V0TmFtZSgnSGlkZSBtZXRhZGF0YSBibG9jayBpbiBQcmV2aWV3IG1vZGUnKVxyXG4gICAgICAuc2V0RGVzYygnV2hlbiBmcm9udCBtYXR0ZXIgaXMgdHVybmVkIG9mZiBpbiB5b3VyIEVkaXRvciBzZXR0aW5ncyB0aGlzIGhpZGVzIHRoZSBtZXRhZGF0YSBibG9jaycpXHJcbiAgICAgIC5hZGRUb2dnbGUodG9nZ2xlID0+IHRvZ2dsZS5zZXRWYWx1ZSh0aGlzLnBsdWdpbi5zZXR0aW5ncy5oaWRlTWV0YSlcclxuICAgICAgICAgIC5vbkNoYW5nZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2V0dGluZ3MuaGlkZU1ldGEgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5wbHVnaW4uc2F2ZURhdGEodGhpcy5wbHVnaW4uc2V0dGluZ3MpO1xyXG4gICAgICAgICAgICB0aGlzLnBsdWdpbi5yZWZyZXNoKCk7XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICApO1xyXG5cclxuXHJcblxyXG4gIH1cclxufVxyXG4iXSwibmFtZXMiOlsiUGx1Z2luIiwiU2V0dGluZyIsIlBsdWdpblNldHRpbmdUYWIiXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNuQyxJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYztBQUN6QyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxZQUFZLEtBQUssSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEYsUUFBUSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUcsSUFBSSxPQUFPLGFBQWEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBQ0Y7QUFDTyxTQUFTLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFO0FBQ2hDLElBQUksYUFBYSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUN4QixJQUFJLFNBQVMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRTtBQUMzQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxLQUFLLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDekYsQ0FBQztBQXVDRDtBQUNPLFNBQVMsU0FBUyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRTtBQUM3RCxJQUFJLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sS0FBSyxZQUFZLENBQUMsR0FBRyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsVUFBVSxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRTtBQUNoSCxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sQ0FBQyxFQUFFLFVBQVUsT0FBTyxFQUFFLE1BQU0sRUFBRTtBQUMvRCxRQUFRLFNBQVMsU0FBUyxDQUFDLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDbkcsUUFBUSxTQUFTLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7QUFDdEcsUUFBUSxTQUFTLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDLEVBQUU7QUFDdEgsUUFBUSxJQUFJLENBQUMsQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7QUFDOUUsS0FBSyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBQ0Q7QUFDTyxTQUFTLFdBQVcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFO0FBQzNDLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNySCxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLE1BQU0sS0FBSyxVQUFVLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxXQUFXLEVBQUUsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzdKLElBQUksU0FBUyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxVQUFVLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUU7QUFDdEUsSUFBSSxTQUFTLElBQUksQ0FBQyxFQUFFLEVBQUU7QUFDdEIsUUFBUSxJQUFJLENBQUMsRUFBRSxNQUFNLElBQUksU0FBUyxDQUFDLGlDQUFpQyxDQUFDLENBQUM7QUFDdEUsUUFBUSxPQUFPLENBQUMsRUFBRSxJQUFJO0FBQ3RCLFlBQVksSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDekssWUFBWSxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BELFlBQVksUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLGdCQUFnQixLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxNQUFNO0FBQzlDLGdCQUFnQixLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUM7QUFDeEUsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7QUFDakUsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLFNBQVM7QUFDakUsZ0JBQWdCO0FBQ2hCLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFO0FBQ2hJLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFO0FBQzFHLG9CQUFvQixJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVB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 diff --git a/.obsidian/plugins/obsidian-hider/manifest.json b/.obsidian/plugins/obsidian-hider/manifest.json deleted file mode 100644 index 9a27b52d..00000000 --- a/.obsidian/plugins/obsidian-hider/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "obsidian-hider", - "name": "Hider", - "version": "1.1.0", - "minAppVersion": "0.12.2", - "description": "Hide UI elements such as tooltips, status, titlebar and more", - "author": "@kepano", - "authorUrl": "https://www.twitter.com/kepano", - "isDesktopOnly": false -} diff --git a/.obsidian/plugins/obsidian-hider/styles.css b/.obsidian/plugins/obsidian-hider/styles.css deleted file mode 100644 index 9dd6ecbc..00000000 --- a/.obsidian/plugins/obsidian-hider/styles.css +++ /dev/null @@ -1,62 +0,0 @@ -/* Hide ribbon */ -.hider-ribbon .workspace-ribbon.mod-left { - display:none; -} -.hider-ribbon .workspace-ribbon.mod-right { - visibility:hidden; - position:absolute; -} -.hider-ribbon .workspace-split.mod-right-split { - margin-right:0; -} -.hider-ribbon .workspace-split.mod-left-split { - margin-left:0; -} - -/* Frameless */ -.hider-frameless .titlebar-button-container { - display:none; -} -.hider-frameless .titlebar, -.hider-frameless .titlebar-inner { - position:fixed; - top:0; - height:12px; - background:transparent; -} -.hider-frameless { - padding-top:0 !important; -} -.hider-frameless .workspace-split.mod-left-split > .workspace-tabs { - padding-top:18px; -} - -/* Hide meta */ -.hider-meta .frontmatter-container { - display:none; -} - -/* Hide scrollbars */ -.hider-scroll ::-webkit-scrollbar { - display:none; -} - -/* Hide status */ -.hider-status .status-bar { - display:none; -} - -/* Hide tooltips */ -.hider-tooltips .tooltip { - display:none; -} - -/* Hide search suggestions */ -.hider-search-suggestions .suggestion-container.mod-search-suggestion { - display: none; -} - -/* Hide instructions */ -.hider-instructions .prompt-instructions { - display:none; -} \ No newline at end of file diff --git a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js deleted file mode 100644 index 17548c62..00000000 --- a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/main.js +++ /dev/null @@ -1,154 +0,0 @@ -'use strict'; - -var obsidian = require('obsidian'); - -/*! ***************************************************************************** -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. -***************************************************************************** */ -/* global Reflect, Promise */ - -var extendStatics = function(d, b) { - 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]; }; - return extendStatics(d, b); -}; - -function __extends(d, b) { - extendStatics(d, b); - function __() { this.constructor = d; } - d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); -} - -var WikilinksToMdlinks = /** @class */ (function (_super) { - __extends(WikilinksToMdlinks, _super); - function WikilinksToMdlinks() { - return _super !== null && _super.apply(this, arguments) || this; - } - WikilinksToMdlinks.prototype.onload = function () { - var _this = this; - console.log('loading wikilinks-to-mdlinks plugin...'); - this.addCommand({ - id: "toggle-wiki-md-links", - name: "Toggle selected wikilink to markdown link and vice versa", - checkCallback: function (checking) { - var currentView = _this.app.workspace.getActiveLeafOfViewType(obsidian.MarkdownView); - if ((currentView == null) || (currentView.getMode() !== 'source')) { - return false; - } - if (!checking) { - _this.toggleLink(); - } - return true; - }, - hotkeys: [{ - modifiers: ["Mod", "Shift"], - key: "L" - }] - }); - }; - WikilinksToMdlinks.prototype.onunload = function () { - console.log('unloading wikilinks-to-mdlinks plugin'); - }; - WikilinksToMdlinks.prototype.toggleLink = function () { - var currentView = this.app.workspace.getActiveLeafOfViewType(obsidian.MarkdownView); - var editor = currentView.sourceMode.cmEditor; - var cursor = editor.getCursor(); - var line = editor.getDoc().getLine(cursor.line); - var regexHasExtension = /^([^\\]*)\.(\w+)$/; - var regexWiki = /\[\[([^\]]+)\]\]/; - var regexParenthesis = /\((.*?)\)/; - var regexWikiGlobal = /\[\[([^\]]*)\]\]/g; - var regexMdGlobal = /\[([^\]]*)\]\(([^\(]*)\)/g; - var wikiMatches = line.match(regexWikiGlobal); - var mdMatches = line.match(regexMdGlobal); - var ifFoundMatch = false; - // If there are wikiMatches find if the cursor is inside the selected text - var i = 0; - if (wikiMatches) { - for (var _i = 0, wikiMatches_1 = wikiMatches; _i < wikiMatches_1.length; _i++) { - var item = wikiMatches_1[_i]; - var temp = line.slice(i, line.length); - var index = i + temp.indexOf(item); - var indexEnd = index + item.length; - i = indexEnd; - if ((cursor.ch >= index) && (cursor.ch <= indexEnd)) { - ifFoundMatch = true; - var text = item.match(regexWiki)[1]; - // Check if it is a markdown file - var matches = text.match(regexHasExtension); - var newText = text; - if (matches) { - var filename = matches[1]; - var extension = matches[2]; - } - else { - newText = newText + ".md"; - } - var encodedText = encodeURI(newText); - var newItem = "[" + text + "](" + encodedText + ")"; - var cursorStart = { - line: cursor.line, - ch: index - }; - var cursorEnd = { - line: cursor.line, - ch: indexEnd - }; - editor.replaceRange(newItem, cursorStart, cursorEnd); - } - } - } - i = 0; - if (ifFoundMatch == false) { - if (mdMatches) { - for (var _a = 0, mdMatches_1 = mdMatches; _a < mdMatches_1.length; _a++) { - var item = mdMatches_1[_a]; - var temp = line.slice(i, line.length); - var index = i + temp.indexOf(item); - var indexEnd = index + item.length; - i = indexEnd; - if ((cursor.ch >= index) && (cursor.ch <= indexEnd)) { - ifFoundMatch = true; - var text = item.match(regexParenthesis)[1]; - text = decodeURI(text); - // Check if it is a markdown file - var matches = text.match(regexHasExtension); - if (matches) { - var filename = matches[1]; - var extension = matches[2]; - if (extension == 'md') { - text = filename; - } - } - var newItem = "[[" + text + "]]"; - var cursorStart = { - line: cursor.line, - ch: index - }; - var cursorEnd = { - line: cursor.line, - ch: indexEnd - }; - editor.replaceRange(newItem, cursorStart, cursorEnd); - } - } - } - } - }; - return WikilinksToMdlinks; -}(obsidian.Plugin)); - -module.exports = WikilinksToMdlinks; -//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5qcyIsInNvdXJjZXMiOlsibm9kZV9tb2R1bGVzL3RzbGliL3RzbGliLmVzNi5qcyIsIm1haW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyohICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXHJcbkNvcHlyaWdodCAoYykgTWljcm9zb2Z0IENvcnBvcmF0aW9uLlxyXG5cclxuUGVybWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kL29yIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSBmb3IgYW55XHJcbnB1cnBvc2Ugd2l0aCBvciB3aXRob3V0IGZlZSBpcyBoZXJlYnkgZ3JhbnRlZC5cclxuXHJcblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIgQU5EIFRIRSBBVVRIT1IgRElTQ0xBSU1TIEFMTCBXQVJSQU5USUVTIFdJVEhcclxuUkVHQVJEIFRPIFRISVMgU09GVFdBUkUgSU5DTFVESU5HIEFMTCBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZXHJcbkFORCBGSVRORVNTLiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJMRSBGT1IgQU5ZIFNQRUNJQUwsIERJUkVDVCxcclxuSU5ESVJFQ1QsIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyBPUiBBTlkgREFNQUdFUyBXSEFUU09FVkVSIFJFU1VMVElORyBGUk9NXHJcbkxPU1MgT0YgVVNFLCBEQVRBIE9SIFBST0ZJVFMsIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBORUdMSUdFTkNFIE9SXHJcbk9USEVSIFRPUlRJT1VTIEFDVElPTiwgQVJJU0lORyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBVU0UgT1JcclxuUEVSRk9STUFOQ0UgT0YgVEhJUyBTT0ZUV0FSRS5cclxuKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogKi9cclxuLyogZ2xvYmFsIFJlZmxlY3QsIFByb21pc2UgKi9cclxuXHJcbnZhciBleHRlbmRTdGF0aWNzID0gZnVuY3Rpb24oZCwgYikge1xyXG4gICAgZXh0ZW5kU3RhdGljcyA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fFxyXG4gICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcclxuICAgICAgICBmdW5jdGlvbiAoZCwgYikgeyBmb3IgKHZhciBwIGluIGIpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYiwgcCkpIGRbcF0gPSBiW3BdOyB9O1xyXG4gICAgcmV0dXJuIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbn07XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19leHRlbmRzKGQsIGIpIHtcclxuICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XHJcbiAgICBmdW5jdGlvbiBfXygpIHsgdGhpcy5jb25zdHJ1Y3RvciA9IGQ7IH1cclxuICAgIGQucHJvdG90eXBlID0gYiA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoYikgOiAoX18ucHJvdG90eXBlID0gYi5wcm90b3R5cGUsIG5ldyBfXygpKTtcclxufVxyXG5cclxuZXhwb3J0IHZhciBfX2Fzc2lnbiA9IGZ1bmN0aW9uKCkge1xyXG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uIF9fYXNzaWduKHQpIHtcclxuICAgICAgICBmb3IgKHZhciBzLCBpID0gMSwgbiA9IGFyZ3VtZW50cy5sZW5ndGg7IGkgPCBuOyBpKyspIHtcclxuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcclxuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKSB0W3BdID0gc1twXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gX19hc3NpZ24uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fcmVzdChzLCBlKSB7XHJcbiAgICB2YXIgdCA9IHt9O1xyXG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXHJcbiAgICAgICAgdFtwXSA9IHNbcF07XHJcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXHJcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXHJcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcclxuICAgICAgICB9XHJcbiAgICByZXR1cm4gdDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpIHtcclxuICAgIHZhciBjID0gYXJndW1lbnRzLmxlbmd0aCwgciA9IGMgPCAzID8gdGFyZ2V0IDogZGVzYyA9PT0gbnVsbCA/IGRlc2MgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHRhcmdldCwga2V5KSA6IGRlc2MsIGQ7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QuZGVjb3JhdGUgPT09IFwiZnVuY3Rpb25cIikgciA9IFJlZmxlY3QuZGVjb3JhdGUoZGVjb3JhdG9ycywgdGFyZ2V0LCBrZXksIGRlc2MpO1xyXG4gICAgZWxzZSBmb3IgKHZhciBpID0gZGVjb3JhdG9ycy5sZW5ndGggLSAxOyBpID49IDA7IGktLSkgaWYgKGQgPSBkZWNvcmF0b3JzW2ldKSByID0gKGMgPCAzID8gZChyKSA6IGMgPiAzID8gZCh0YXJnZXQsIGtleSwgcikgOiBkKHRhcmdldCwga2V5KSkgfHwgcjtcclxuICAgIHJldHVybiBjID4gMyAmJiByICYmIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIGtleSwgciksIHI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3BhcmFtKHBhcmFtSW5kZXgsIGRlY29yYXRvcikge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQsIGtleSkgeyBkZWNvcmF0b3IodGFyZ2V0LCBrZXksIHBhcmFtSW5kZXgpOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX21ldGFkYXRhKG1ldGFkYXRhS2V5LCBtZXRhZGF0YVZhbHVlKSB7XHJcbiAgICBpZiAodHlwZW9mIFJlZmxlY3QgPT09IFwib2JqZWN0XCIgJiYgdHlwZW9mIFJlZmxlY3QubWV0YWRhdGEgPT09IFwiZnVuY3Rpb25cIikgcmV0dXJuIFJlZmxlY3QubWV0YWRhdGEobWV0YWRhdGFLZXksIG1ldGFkYXRhVmFsdWUpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hd2FpdGVyKHRoaXNBcmcsIF9hcmd1bWVudHMsIFAsIGdlbmVyYXRvcikge1xyXG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XHJcbiAgICByZXR1cm4gbmV3IChQIHx8IChQID0gUHJvbWlzZSkpKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcclxuICAgICAgICBmdW5jdGlvbiBmdWxmaWxsZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3IubmV4dCh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XHJcbiAgICAgICAgZnVuY3Rpb24gc3RlcChyZXN1bHQpIHsgcmVzdWx0LmRvbmUgPyByZXNvbHZlKHJlc3VsdC52YWx1ZSkgOiBhZG9wdChyZXN1bHQudmFsdWUpLnRoZW4oZnVsZmlsbGVkLCByZWplY3RlZCk7IH1cclxuICAgICAgICBzdGVwKChnZW5lcmF0b3IgPSBnZW5lcmF0b3IuYXBwbHkodGhpc0FyZywgX2FyZ3VtZW50cyB8fCBbXSkpLm5leHQoKSk7XHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fZ2VuZXJhdG9yKHRoaXNBcmcsIGJvZHkpIHtcclxuICAgIHZhciBfID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7IGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTsgcmV0dXJuIHRbMV07IH0sIHRyeXM6IFtdLCBvcHM6IFtdIH0sIGYsIHksIHQsIGc7XHJcbiAgICByZXR1cm4gZyA9IHsgbmV4dDogdmVyYigwKSwgXCJ0aHJvd1wiOiB2ZXJiKDEpLCBcInJldHVyblwiOiB2ZXJiKDIpIH0sIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiAmJiAoZ1tTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7IHJldHVybiB0aGlzOyB9KSwgZztcclxuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc3RlcChvcCkge1xyXG4gICAgICAgIGlmIChmKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcclxuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKGYgPSAxLCB5ICYmICh0ID0gb3BbMF0gJiAyID8geVtcInJldHVyblwiXSA6IG9wWzBdID8geVtcInRocm93XCJdIHx8ICgodCA9IHlbXCJyZXR1cm5cIl0pICYmIHQuY2FsbCh5KSwgMCkgOiB5Lm5leHQpICYmICEodCA9IHQuY2FsbCh5LCBvcFsxXSkpLmRvbmUpIHJldHVybiB0O1xyXG4gICAgICAgICAgICBpZiAoeSA9IDAsIHQpIG9wID0gW29wWzBdICYgMiwgdC52YWx1ZV07XHJcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcclxuICAgICAgICAgICAgICAgIGNhc2UgMDogY2FzZSAxOiB0ID0gb3A7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgY2FzZSA0OiBfLmxhYmVsKys7IHJldHVybiB7IHZhbHVlOiBvcFsxXSwgZG9uZTogZmFsc2UgfTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGNhc2UgNzogb3AgPSBfLm9wcy5wb3AoKTsgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcclxuICAgICAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKG9wWzBdID09PSAzICYmICghdCB8fCAob3BbMV0gPiB0WzBdICYmIG9wWzFdIDwgdFszXSkpKSB7IF8ubGFiZWwgPSBvcFsxXTsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAob3BbMF0gPT09IDYgJiYgXy5sYWJlbCA8IHRbMV0pIHsgXy5sYWJlbCA9IHRbMV07IHQgPSBvcDsgYnJlYWs7IH1cclxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRbMl0pIF8ub3BzLnBvcCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIF8udHJ5cy5wb3AoKTsgY29udGludWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgb3AgPSBib2R5LmNhbGwodGhpc0FyZywgXyk7XHJcbiAgICAgICAgfSBjYXRjaCAoZSkgeyBvcCA9IFs2LCBlXTsgeSA9IDA7IH0gZmluYWxseSB7IGYgPSB0ID0gMDsgfVxyXG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdmFyIF9fY3JlYXRlQmluZGluZyA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgbSwgaywgazIpIHtcclxuICAgIGlmIChrMiA9PT0gdW5kZWZpbmVkKSBrMiA9IGs7XHJcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgazIsIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIG1ba107IH0gfSk7XHJcbn0pIDogKGZ1bmN0aW9uKG8sIG0sIGssIGsyKSB7XHJcbiAgICBpZiAoazIgPT09IHVuZGVmaW5lZCkgazIgPSBrO1xyXG4gICAgb1trMl0gPSBtW2tdO1xyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2V4cG9ydFN0YXIobSwgbykge1xyXG4gICAgZm9yICh2YXIgcCBpbiBtKSBpZiAocCAhPT0gXCJkZWZhdWx0XCIgJiYgIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBwKSkgX19jcmVhdGVCaW5kaW5nKG8sIG0sIHApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX192YWx1ZXMobykge1xyXG4gICAgdmFyIHMgPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBtID0gcyAmJiBvW3NdLCBpID0gMDtcclxuICAgIGlmIChtKSByZXR1cm4gbS5jYWxsKG8pO1xyXG4gICAgaWYgKG8gJiYgdHlwZW9mIG8ubGVuZ3RoID09PSBcIm51bWJlclwiKSByZXR1cm4ge1xyXG4gICAgICAgIG5leHQ6IGZ1bmN0aW9uICgpIHtcclxuICAgICAgICAgICAgaWYgKG8gJiYgaSA+PSBvLmxlbmd0aCkgbyA9IHZvaWQgMDtcclxuICAgICAgICAgICAgcmV0dXJuIHsgdmFsdWU6IG8gJiYgb1tpKytdLCBkb25lOiAhbyB9O1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKHMgPyBcIk9iamVjdCBpcyBub3QgaXRlcmFibGUuXCIgOiBcIlN5bWJvbC5pdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3JlYWQobywgbikge1xyXG4gICAgdmFyIG0gPSB0eXBlb2YgU3ltYm9sID09PSBcImZ1bmN0aW9uXCIgJiYgb1tTeW1ib2wuaXRlcmF0b3JdO1xyXG4gICAgaWYgKCFtKSByZXR1cm4gbztcclxuICAgIHZhciBpID0gbS5jYWxsKG8pLCByLCBhciA9IFtdLCBlO1xyXG4gICAgdHJ5IHtcclxuICAgICAgICB3aGlsZSAoKG4gPT09IHZvaWQgMCB8fCBuLS0gPiAwKSAmJiAhKHIgPSBpLm5leHQoKSkuZG9uZSkgYXIucHVzaChyLnZhbHVlKTtcclxuICAgIH1cclxuICAgIGNhdGNoIChlcnJvcikgeyBlID0geyBlcnJvcjogZXJyb3IgfTsgfVxyXG4gICAgZmluYWxseSB7XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgaWYgKHIgJiYgIXIuZG9uZSAmJiAobSA9IGlbXCJyZXR1cm5cIl0pKSBtLmNhbGwoaSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbmFsbHkgeyBpZiAoZSkgdGhyb3cgZS5lcnJvcjsgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGFyO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19zcHJlYWQoKSB7XHJcbiAgICBmb3IgKHZhciBhciA9IFtdLCBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKylcclxuICAgICAgICBhciA9IGFyLmNvbmNhdChfX3JlYWQoYXJndW1lbnRzW2ldKSk7XHJcbiAgICByZXR1cm4gYXI7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX3NwcmVhZEFycmF5cygpIHtcclxuICAgIGZvciAodmFyIHMgPSAwLCBpID0gMCwgaWwgPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgaWw7IGkrKykgcyArPSBhcmd1bWVudHNbaV0ubGVuZ3RoO1xyXG4gICAgZm9yICh2YXIgciA9IEFycmF5KHMpLCBrID0gMCwgaSA9IDA7IGkgPCBpbDsgaSsrKVxyXG4gICAgICAgIGZvciAodmFyIGEgPSBhcmd1bWVudHNbaV0sIGogPSAwLCBqbCA9IGEubGVuZ3RoOyBqIDwgamw7IGorKywgaysrKVxyXG4gICAgICAgICAgICByW2tdID0gYVtqXTtcclxuICAgIHJldHVybiByO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIF9fYXdhaXQodikge1xyXG4gICAgcmV0dXJuIHRoaXMgaW5zdGFuY2VvZiBfX2F3YWl0ID8gKHRoaXMudiA9IHYsIHRoaXMpIDogbmV3IF9fYXdhaXQodik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jR2VuZXJhdG9yKHRoaXNBcmcsIF9hcmd1bWVudHMsIGdlbmVyYXRvcikge1xyXG4gICAgaWYgKCFTeW1ib2wuYXN5bmNJdGVyYXRvcikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN5bWJvbC5hc3luY0l0ZXJhdG9yIGlzIG5vdCBkZWZpbmVkLlwiKTtcclxuICAgIHZhciBnID0gZ2VuZXJhdG9yLmFwcGx5KHRoaXNBcmcsIF9hcmd1bWVudHMgfHwgW10pLCBpLCBxID0gW107XHJcbiAgICByZXR1cm4gaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4pIHsgaWYgKGdbbl0pIGlbbl0gPSBmdW5jdGlvbiAodikgeyByZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24gKGEsIGIpIHsgcS5wdXNoKFtuLCB2LCBhLCBiXSkgPiAxIHx8IHJlc3VtZShuLCB2KTsgfSk7IH07IH1cclxuICAgIGZ1bmN0aW9uIHJlc3VtZShuLCB2KSB7IHRyeSB7IHN0ZXAoZ1tuXSh2KSk7IH0gY2F0Y2ggKGUpIHsgc2V0dGxlKHFbMF1bM10sIGUpOyB9IH1cclxuICAgIGZ1bmN0aW9uIHN0ZXAocikgeyByLnZhbHVlIGluc3RhbmNlb2YgX19hd2FpdCA/IFByb21pc2UucmVzb2x2ZShyLnZhbHVlLnYpLnRoZW4oZnVsZmlsbCwgcmVqZWN0KSA6IHNldHRsZShxWzBdWzJdLCByKTsgfVxyXG4gICAgZnVuY3Rpb24gZnVsZmlsbCh2YWx1ZSkgeyByZXN1bWUoXCJuZXh0XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gcmVqZWN0KHZhbHVlKSB7IHJlc3VtZShcInRocm93XCIsIHZhbHVlKTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKGYsIHYpIHsgaWYgKGYodiksIHEuc2hpZnQoKSwgcS5sZW5ndGgpIHJlc3VtZShxWzBdWzBdLCBxWzBdWzFdKTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19hc3luY0RlbGVnYXRvcihvKSB7XHJcbiAgICB2YXIgaSwgcDtcclxuICAgIHJldHVybiBpID0ge30sIHZlcmIoXCJuZXh0XCIpLCB2ZXJiKFwidGhyb3dcIiwgZnVuY3Rpb24gKGUpIHsgdGhyb3cgZTsgfSksIHZlcmIoXCJyZXR1cm5cIiksIGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGk7XHJcbiAgICBmdW5jdGlvbiB2ZXJiKG4sIGYpIHsgaVtuXSA9IG9bbl0gPyBmdW5jdGlvbiAodikgeyByZXR1cm4gKHAgPSAhcCkgPyB7IHZhbHVlOiBfX2F3YWl0KG9bbl0odikpLCBkb25lOiBuID09PSBcInJldHVyblwiIH0gOiBmID8gZih2KSA6IHY7IH0gOiBmOyB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2FzeW5jVmFsdWVzKG8pIHtcclxuICAgIGlmICghU3ltYm9sLmFzeW5jSXRlcmF0b3IpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJTeW1ib2wuYXN5bmNJdGVyYXRvciBpcyBub3QgZGVmaW5lZC5cIik7XHJcbiAgICB2YXIgbSA9IG9bU3ltYm9sLmFzeW5jSXRlcmF0b3JdLCBpO1xyXG4gICAgcmV0dXJuIG0gPyBtLmNhbGwobykgOiAobyA9IHR5cGVvZiBfX3ZhbHVlcyA9PT0gXCJmdW5jdGlvblwiID8gX192YWx1ZXMobykgOiBvW1N5bWJvbC5pdGVyYXRvcl0oKSwgaSA9IHt9LCB2ZXJiKFwibmV4dFwiKSwgdmVyYihcInRocm93XCIpLCB2ZXJiKFwicmV0dXJuXCIpLCBpW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXM7IH0sIGkpO1xyXG4gICAgZnVuY3Rpb24gdmVyYihuKSB7IGlbbl0gPSBvW25dICYmIGZ1bmN0aW9uICh2KSB7IHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7IHYgPSBvW25dKHYpLCBzZXR0bGUocmVzb2x2ZSwgcmVqZWN0LCB2LmRvbmUsIHYudmFsdWUpOyB9KTsgfTsgfVxyXG4gICAgZnVuY3Rpb24gc2V0dGxlKHJlc29sdmUsIHJlamVjdCwgZCwgdikgeyBQcm9taXNlLnJlc29sdmUodikudGhlbihmdW5jdGlvbih2KSB7IHJlc29sdmUoeyB2YWx1ZTogdiwgZG9uZTogZCB9KTsgfSwgcmVqZWN0KTsgfVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19tYWtlVGVtcGxhdGVPYmplY3QoY29va2VkLCByYXcpIHtcclxuICAgIGlmIChPYmplY3QuZGVmaW5lUHJvcGVydHkpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGNvb2tlZCwgXCJyYXdcIiwgeyB2YWx1ZTogcmF3IH0pOyB9IGVsc2UgeyBjb29rZWQucmF3ID0gcmF3OyB9XHJcbiAgICByZXR1cm4gY29va2VkO1xyXG59O1xyXG5cclxudmFyIF9fc2V0TW9kdWxlRGVmYXVsdCA9IE9iamVjdC5jcmVhdGUgPyAoZnVuY3Rpb24obywgdikge1xyXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG8sIFwiZGVmYXVsdFwiLCB7IGVudW1lcmFibGU6IHRydWUsIHZhbHVlOiB2IH0pO1xyXG59KSA6IGZ1bmN0aW9uKG8sIHYpIHtcclxuICAgIG9bXCJkZWZhdWx0XCJdID0gdjtcclxufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydFN0YXIobW9kKSB7XHJcbiAgICBpZiAobW9kICYmIG1vZC5fX2VzTW9kdWxlKSByZXR1cm4gbW9kO1xyXG4gICAgdmFyIHJlc3VsdCA9IHt9O1xyXG4gICAgaWYgKG1vZCAhPSBudWxsKSBmb3IgKHZhciBrIGluIG1vZCkgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtb2QsIGspKSBfX2NyZWF0ZUJpbmRpbmcocmVzdWx0LCBtb2QsIGspO1xyXG4gICAgX19zZXRNb2R1bGVEZWZhdWx0KHJlc3VsdCwgbW9kKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2ltcG9ydERlZmF1bHQobW9kKSB7XHJcbiAgICByZXR1cm4gKG1vZCAmJiBtb2QuX19lc01vZHVsZSkgPyBtb2QgOiB7IGRlZmF1bHQ6IG1vZCB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gX19jbGFzc1ByaXZhdGVGaWVsZEdldChyZWNlaXZlciwgcHJpdmF0ZU1hcCkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIGdldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHJldHVybiBwcml2YXRlTWFwLmdldChyZWNlaXZlcik7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBfX2NsYXNzUHJpdmF0ZUZpZWxkU2V0KHJlY2VpdmVyLCBwcml2YXRlTWFwLCB2YWx1ZSkge1xyXG4gICAgaWYgKCFwcml2YXRlTWFwLmhhcyhyZWNlaXZlcikpIHtcclxuICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiYXR0ZW1wdGVkIHRvIHNldCBwcml2YXRlIGZpZWxkIG9uIG5vbi1pbnN0YW5jZVwiKTtcclxuICAgIH1cclxuICAgIHByaXZhdGVNYXAuc2V0KHJlY2VpdmVyLCB2YWx1ZSk7XHJcbiAgICByZXR1cm4gdmFsdWU7XHJcbn1cclxuIiwiaW1wb3J0IHsgc3RyaWN0IH0gZnJvbSAnYXNzZXJ0J1xyXG5pbXBvcnQgeyBBcHAsIE1vZGFsLCBOb3RpY2UsIFBsdWdpbiwgUGx1Z2luU2V0dGluZ1RhYiwgU2V0dGluZyB9IGZyb20gJ29ic2lkaWFuJ1xyXG5pbXBvcnQgeyBNYXJrZG93blZpZXcsIFRGaWxlIH0gZnJvbSAnb2JzaWRpYW4nXHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXaWtpbGlua3NUb01kbGlua3MgZXh0ZW5kcyBQbHVnaW4ge1xyXG5cdG9ubG9hZCgpIHtcclxuXHRcdGNvbnNvbGUubG9nKCdsb2FkaW5nIHdpa2lsaW5rcy10by1tZGxpbmtzIHBsdWdpbi4uLicpXHJcblxyXG5cdFx0dGhpcy5hZGRDb21tYW5kKHtcclxuXHRcdFx0aWQ6IFwidG9nZ2xlLXdpa2ktbWQtbGlua3NcIixcclxuXHRcdFx0bmFtZTogXCJUb2dnbGUgc2VsZWN0ZWQgd2lraWxpbmsgdG8gbWFya2Rvd24gbGluayBhbmQgdmljZSB2ZXJzYVwiLFxyXG5cdFx0XHRjaGVja0NhbGxiYWNrOiAoY2hlY2tpbmc6IGJvb2xlYW4pID0+IHtcclxuXHRcdFx0XHRjb25zdCBjdXJyZW50VmlldyA9IHRoaXMuYXBwLndvcmtzcGFjZS5nZXRBY3RpdmVMZWFmT2ZWaWV3VHlwZShNYXJrZG93blZpZXcpXHJcblxyXG5cdFx0XHRcdGlmICgoY3VycmVudFZpZXcgPT0gbnVsbCkgfHwgKGN1cnJlbnRWaWV3LmdldE1vZGUoKSAhPT0gJ3NvdXJjZScpKSAge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlXHJcblx0XHRcdFx0fVxyXG5cclxuXHRcdFx0XHRpZiAoIWNoZWNraW5nKSB7XHJcblx0XHRcdFx0XHR0aGlzLnRvZ2dsZUxpbmsoKVxyXG5cdFx0XHRcdH1cclxuXHJcblx0XHRcdFx0cmV0dXJuIHRydWVcclxuXHRcdFx0fSxcclxuXHRcdFx0aG90a2V5czogW3tcclxuXHRcdFx0XHRtb2RpZmllcnM6IFtcIk1vZFwiLCBcIlNoaWZ0XCJdLFxyXG5cdFx0XHRcdGtleTogXCJMXCJcclxuXHRcdFx0fV1cclxuXHRcdH0pXHJcblxyXG5cdH1cclxuXHJcblx0b251bmxvYWQoKSB7XHJcblx0XHRjb25zb2xlLmxvZygndW5sb2FkaW5nIHdpa2lsaW5rcy10by1tZGxpbmtzIHBsdWdpbicpXHJcblx0fVxyXG5cclxuXHR0b2dnbGVMaW5rKCkge1xyXG5cdFx0Y29uc3QgY3VycmVudFZpZXcgPSB0aGlzLmFwcC53b3Jrc3BhY2UuZ2V0QWN0aXZlTGVhZk9mVmlld1R5cGUoTWFya2Rvd25WaWV3KVxyXG5cdFx0Y29uc3QgZWRpdG9yID0gY3VycmVudFZpZXcuc291cmNlTW9kZS5jbUVkaXRvclxyXG5cclxuXHJcblx0XHRjb25zdCBjdXJzb3IgPSBlZGl0b3IuZ2V0Q3Vyc29yKClcclxuXHRcdGNvbnN0IGxpbmUgPSBlZGl0b3IuZ2V0RG9jKCkuZ2V0TGluZShjdXJzb3IubGluZSk7XHJcblxyXG5cdFx0Y29uc3QgcmVnZXhIYXNFeHRlbnNpb24gPSAvXihbXlxcXFxdKilcXC4oXFx3KykkL1xyXG5cclxuXHRcdGNvbnN0IHJlZ2V4V2lraSA9IC9cXFtcXFsoW15cXF1dKylcXF1cXF0vXHJcblx0XHRjb25zdCByZWdleFBhcmVudGhlc2lzID0gL1xcKCguKj8pXFwpL1xyXG5cdFx0Y29uc3QgcmVnZXhXaWtpR2xvYmFsID0gL1xcW1xcWyhbXlxcXV0qKVxcXVxcXS9nXHJcblx0XHRjb25zdCByZWdleE1kR2xvYmFsID0gL1xcWyhbXlxcXV0qKVxcXVxcKChbXlxcKF0qKVxcKS9nXHJcblxyXG5cdFx0bGV0IHdpa2lNYXRjaGVzID0gbGluZS5tYXRjaChyZWdleFdpa2lHbG9iYWwpXHJcblx0XHRsZXQgbWRNYXRjaGVzID0gbGluZS5tYXRjaChyZWdleE1kR2xvYmFsKVxyXG5cclxuXHRcdGxldCBpZkZvdW5kTWF0Y2ggPSBmYWxzZVxyXG5cclxuXHRcdC8vIElmIHRoZXJlIGFyZSB3aWtpTWF0Y2hlcyBmaW5kIGlmIHRoZSBjdXJzb3IgaXMgaW5zaWRlIHRoZSBzZWxlY3RlZCB0ZXh0XHJcblx0XHRsZXQgaSA9IDBcclxuXHRcdGlmICh3aWtpTWF0Y2hlcykge1xyXG5cdFx0XHRmb3IgKGNvbnN0IGl0ZW0gb2Ygd2lraU1hdGNoZXMpIHtcclxuXHJcblx0XHRcdFx0bGV0IHRlbXAgPSBsaW5lLnNsaWNlKGksIGxpbmUubGVuZ3RoKVxyXG5cclxuXHRcdFx0XHRsZXQgaW5kZXggPSBpICsgdGVtcC5pbmRleE9mKGl0ZW0pXHJcblx0XHRcdFx0bGV0IGluZGV4RW5kID0gaW5kZXggKyBpdGVtLmxlbmd0aFxyXG5cclxuXHRcdFx0XHRpID0gaW5kZXhFbmRcclxuXHRcdFx0XHRpZiAoKGN1cnNvci5jaCA+PSBpbmRleCApICYmIChjdXJzb3IuY2ggPD0gaW5kZXhFbmQgKSkge1xyXG5cdFx0XHRcdFx0aWZGb3VuZE1hdGNoID0gdHJ1ZVxyXG5cdFx0XHRcdFx0bGV0IHRleHQgPSBpdGVtLm1hdGNoKHJlZ2V4V2lraSlbMV1cclxuXHRcdFx0XHRcdC8vIENoZWNrIGlmIGl0IGlzIGEgbWFya2Rvd24gZmlsZVxyXG5cdFx0XHRcdFx0Y29uc3QgbWF0Y2hlcyA9IHRleHQubWF0Y2gocmVnZXhIYXNFeHRlbnNpb24pO1xyXG5cdFx0XHRcdFx0bGV0IG5ld1RleHQgPSB0ZXh0XHJcblx0XHRcdFx0XHRpZiAobWF0Y2hlcykge1xyXG5cdFx0XHRcdFx0XHRjb25zdCBmaWxlbmFtZSA9IG1hdGNoZXNbMV1cclxuXHRcdFx0XHRcdFx0Y29uc3QgZXh0ZW5zaW9uID0gbWF0Y2hlc1syXVxyXG5cdFx0XHRcdFx0fSBlbHNlIHtcclxuXHRcdFx0XHRcdFx0bmV3VGV4dCA9IG5ld1RleHQgKyBcIi5tZFwiXHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRjb25zdCBlbmNvZGVkVGV4dCA9IGVuY29kZVVSSShuZXdUZXh0KVxyXG5cdFx0XHRcdFx0bGV0IG5ld0l0ZW0gPSBgWyR7dGV4dH1dKCR7ZW5jb2RlZFRleHR9KWBcclxuXHJcblx0XHRcdFx0XHRjb25zdCBjdXJzb3JTdGFydCA9IHtcclxuXHRcdFx0XHRcdFx0bGluZTogY3Vyc29yLmxpbmUsXHJcblx0XHRcdFx0XHRcdGNoOiBpbmRleFxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0Y29uc3QgY3Vyc29yRW5kID0ge1xyXG5cdFx0XHRcdFx0XHRsaW5lOiBjdXJzb3IubGluZSxcclxuXHRcdFx0XHRcdFx0Y2g6IGluZGV4RW5kXHJcblx0XHRcdFx0XHR9XHJcblxyXG5cdFx0XHRcdFx0ZWRpdG9yLnJlcGxhY2VSYW5nZShuZXdJdGVtLCBjdXJzb3JTdGFydCwgY3Vyc29yRW5kKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHRpID0gMFxyXG5cdFx0aWYgKGlmRm91bmRNYXRjaCA9PSBmYWxzZSkge1xyXG5cdFx0XHRpZiAobWRNYXRjaGVzKSB7XHJcblx0XHRcdFx0Zm9yIChjb25zdCBpdGVtIG9mIG1kTWF0Y2hlcykge1xyXG5cdFx0XHRcdFx0bGV0IHRlbXAgPSBsaW5lLnNsaWNlKGksIGxpbmUubGVuZ3RoKVxyXG5cdFx0XHRcdFx0bGV0IGluZGV4ID0gaSArIHRlbXAuaW5kZXhPZihpdGVtKVxyXG5cdFx0XHRcdFx0bGV0IGluZGV4RW5kID0gaW5kZXggKyBpdGVtLmxlbmd0aFxyXG5cdFx0XHRcdFx0aSA9IGluZGV4RW5kXHJcblxyXG5cdFx0XHRcdFx0aWYgKChjdXJzb3IuY2ggPj0gaW5kZXggKSAmJiAoY3Vyc29yLmNoIDw9IGluZGV4RW5kICkpIHtcclxuXHRcdFx0XHRcdFx0aWZGb3VuZE1hdGNoID0gdHJ1ZVxyXG5cdFx0XHRcdFx0XHRsZXQgdGV4dCA9IGl0ZW0ubWF0Y2gocmVnZXhQYXJlbnRoZXNpcylbMV1cclxuXHRcdFx0XHRcdFx0dGV4dCA9IGRlY29kZVVSSSh0ZXh0KVxyXG5cclxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgaXQgaXMgYSBtYXJrZG93biBmaWxlXHJcblx0XHRcdFx0XHRcdGNvbnN0IG1hdGNoZXMgPSB0ZXh0Lm1hdGNoKHJlZ2V4SGFzRXh0ZW5zaW9uKTtcclxuXHRcdFx0XHRcdFx0aWYgKG1hdGNoZXMpIHtcclxuXHRcdFx0XHRcdFx0XHRjb25zdCBmaWxlbmFtZSA9IG1hdGNoZXNbMV1cclxuXHRcdFx0XHRcdFx0XHRjb25zdCBleHRlbnNpb24gPSBtYXRjaGVzWzJdXHJcblxyXG5cdFx0XHRcdFx0XHRcdGlmIChleHRlbnNpb24gPT0gJ21kJykge1xyXG5cdFx0XHRcdFx0XHRcdFx0dGV4dCA9IGZpbGVuYW1lXHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGxldCBuZXdJdGVtID0gYFtbJHt0ZXh0fV1dYFxyXG5cclxuXHRcdFx0XHRcdFx0Y29uc3QgY3Vyc29yU3RhcnQgPSB7XHJcblx0XHRcdFx0XHRcdFx0bGluZTogY3Vyc29yLmxpbmUsXHJcblx0XHRcdFx0XHRcdFx0Y2g6IGluZGV4XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0Y29uc3QgY3Vyc29yRW5kID0ge1xyXG5cdFx0XHRcdFx0XHRcdGxpbmU6IGN1cnNvci5saW5lLFxyXG5cdFx0XHRcdFx0XHRcdGNoOiBpbmRleEVuZFxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdGVkaXRvci5yZXBsYWNlUmFuZ2UobmV3SXRlbSwgY3Vyc29yU3RhcnQsIGN1cnNvckVuZCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdLCJuYW1lcyI6WyJNYXJrZG93blZpZXciLCJQbHVnaW4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUksYUFBYSxHQUFHLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtBQUNuQyxJQUFJLGFBQWEsR0FBRyxNQUFNLENBQUMsY0FBYztBQUN6QyxTQUFTLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxZQUFZLEtBQUssSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDcEYsUUFBUSxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUcsSUFBSSxPQUFPLGFBQWEs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 diff --git a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json b/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json deleted file mode 100644 index a5a14166..00000000 --- a/.obsidian/plugins/wikilinks-to-mdlinks-obsidian/manifest.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "id": "wikilinks-to-mdlinks-obsidian", - "name": "Wikilinks to MDLinks", - "version": "0.0.12", - "minAppVersion": "0.9.12", - "description": "A plugin that converts wikilinks to markdown links and vice versa", - "author": "Agatha Uy", - "authorUrl": "https://github.com/agathauy", - "isDesktopOnly": false -} diff --git a/.obsidian/rtl.json b/.obsidian/rtl.json deleted file mode 100644 index fe95a613..00000000 --- a/.obsidian/rtl.json +++ /dev/null @@ -1 +0,0 @@ -{"fileDirections":{"講道筆記.md":"ltr"},"defaultDirection":"ltr","rememberPerFile":true} \ No newline at end of file diff --git a/.obsidian/snippets/default.css b/.obsidian/snippets/default.css deleted file mode 100644 index 6247da44..00000000 --- a/.obsidian/snippets/default.css +++ /dev/null @@ -1,232 +0,0 @@ -/* ============= 設定字型 ================== */ -@font-face { - font-family: AndleyFont; - unicode-range: U+0370-03FF, U+1F00-1FFF; /* Greek UNICODE */ - src: local("SBL BibLit"); -} -@font-face { - font-family: AndleyFont; - unicode-range: U+0590-05FF, U+FB10-FB4F; /* Hebrew UNICODE */ - src: local("SBL BibLit"); -} -@font-face { - font-family: AndleyFont; - unicode-range: U+00-024F; /* English UNICODE */ - src: local("Noto Sans"); -} -@font-face { - font-family: AndleyFont; - unicode-range: U+4E00-9FFF; /* 中文 UNICODE */ - src: local("Noto Sans CJK TC"); -} -/* ============= 設定字型 ================== */ -@font-face { - font-family: InterlinearFont; - unicode-range: U+0370-03FF, U+1F00-1FFF; /* Greek UNICODE */ - src: local("SBL BibLit"); -} -@font-face { - font-family: InterlinearFont; - unicode-range: U+0590-05FF, U+FB10-FB4F; /* Hebrew UNICODE */ - src: local("SBL BibLit"); -} -@font-face { - font-family: InterlinearFont; - unicode-range: U+00-024F; /* English UNICODE */ - src: local("Arial Narrow"); -} -@font-face { - font-family: InterlinearFont; - unicode-range: U+4E00-9FFF; /* 中文 UNICODE */ - src: local("新細明體"); -} - - -/* ============= 銀幕顯示 設定 ============= */ -/* Obsidian 介面 */ -.theme-dark { - --text-tag: #3b7da8; - --text-muted: #D3D3D3; - --text-faint: gold; - --text-selection: DarkSlateBlue; - --text-accent: greenyellow; - --text-link: #a3be8c; - --color1:#ea4335; - --color2:#4285f4; - --color3:#34a853; - --color4:#ff8a00; - --background-primary: black; - -} -.theme-light { - --text-tag: rgb(128, 136, 240); - --text-normal:black; - --text-faint: blue; - --text-accent: red; - --background-primary: white; - --color1:darkred; - --color2:darkblue; - --color3:darkgreen; - --color4:darkmagenta; -} - - -/* 標題顏色 */ -.titlebar-inner { - color: var(--text-faint);; - background-color: darkslategrey; -} - -.workspace-leaf.mod-active .view-header-title { - color: var(--text-accent); -} - -/* 粗體、斜體 in preview and editor */ - -strong, .cm-strong { - color: var(--text-accent); - font-weight: bolder; -} -em, .cm-em { - color: var(--text-faint); - font-weight: bold; -} -a { - color: var(--text-link); -} - - -/* tags in preview and editor */ -.cm-s-obsidian span.cm-tag { - color: var(--text-tag); -} - -/* 標題 */ -.cm-header-1, .markdown-preview-view h1 { - color: var(--color1); - font-size:26px; /* 20pt 字體大小*/ - text-align: center; - border-bottom: 4px double ; - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} -.cm-header-2,.markdown-preview-view h2 { - color: var(--color2); - font-size:24px; /* 18pt 字體大小*/ - text-align: center; - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} -.cm-header-3,.markdown-preview-view h3 { - color: var(--color3); - font-size:22px; /* 16pt 字體大小*/ - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} -.cm-header-4,.markdown-preview-view h4 { - color: var(--color4); - font-size:19px; /* 14pt 字體大小*/ - text-indent: 10px; - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} -.cm-header-5,.markdown-preview-view h5 { - color: var(--color5); - font-size:16px; /* 12pt 字體大小*/ - text-indent: 20px; - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} -.cm-header-6,.markdown-preview-view h6 { - color: var(--color6); - font-size:16px; /* 12pt 字體大小*/ - font-family: "Noto Sans Black", "Noto Sans CJK TC Black"; -} - -/***************************************/ -/* Table */ -/***************************************/ -.markdown-preview-view th { - border: 1px solid; - border-bottom: 4px double; - font-weight: 800; - padding: 5px 5px; -} - -.markdown-preview-view td { - border: 1px solid; - padding: 3px 5px; -} - -/***************************************/ -/* Ruby Interlinear */ -/***************************************/ - /* -------- 銀幕 Interlinear 經文段落---------- */ - ruby { - display: inline-flex; - flex-direction: column-reverse ; - align-items: center; - font-size: 16px ; /* 12pt 字體大小*/ - line-height: 14px ; - padding-bottom: 10px ; - font-family: AndleyFont; - } - rt { - font-size: 13px ; /* 10pt 字體大小*/ - line-height: 13px ; - font-family: InterlinearFont; - } - - ul ruby { - padding-bottom: 5px !important; - } - - ul p { - margin-block-start: 0em; - margin-block-end: 0em; - } - - body { - font-family: AndleyFont; - } - - -.nav-file-title, .nav-folder-title { - display: flex; - border: 1px solid transparent; - border-radius: 3px; - cursor: pointer; - color: var(--text-muted); - font-size: 13px; - line-height: 14px; - padding: 1px 10px 0 26px; - white-space: nowrap; - width: max-content; - min-width: 100%; -} - -.cm-hmd-list-indent .cm-tab, ul ul { position: relative; } -.cm-hmd-list-indent .cm-tab::before, ul ul::before { - content:''; - border-left: 1px solid grey; - position: absolute; -} -.cm-hmd-list-indent .cm-tab::before { left: 0; top: -5px; bottom: -4px; -} -ul ul::before { left: -15px; top: 0; bottom: 0; -} - -/* cursor */ -.CodeMirror-cursor { - border-left-width: 0.12em; - opacity: 1; -} - -.markdown-source-view, .CodeMirror-selected, .markdown-preview-view { - max-width: 850px; - margin: auto; - } - -.markdown-preview-view code { - color: #c7254e; - font-weight: 800; - background-color: lightgrey; - border-radius: 4px; - padding: 1px 4px; -} - diff --git a/.obsidian/snippets/margin-narrow.css b/.obsidian/snippets/margin-narrow.css deleted file mode 100644 index db8bae4f..00000000 --- a/.obsidian/snippets/margin-narrow.css +++ /dev/null @@ -1,22 +0,0 @@ -/* ============= 列印 PDF 設定 ============= */ -@page { - size: A4 portrait; - margin-left: -0.5cm; - margin-right: -0.5cm; -} - -@media print { - /* -------- 列印強調 ---------- */ - h1, h2, h3, h4, h5, h6 { - color: black !important; - } - a { - color: green !important; - } - strong { - color: red !important; - } - em { - color: blue !important; - } -} diff --git a/.obsidian/snippets/margin-wide.css b/.obsidian/snippets/margin-wide.css deleted file mode 100644 index c1d8f8f0..00000000 --- a/.obsidian/snippets/margin-wide.css +++ /dev/null @@ -1,16 +0,0 @@ -/* ============= 列印 PDF 設定 ============= */ -@media print { - /* -------- 列印強調 ---------- */ - h1, h2, h3, h4, h5, h6 { - color: black !important; - } - a { - color: green !important; - } - strong { - color: red !important; - } - em { - color: blue !important; - } -} diff --git a/.obsidian/starred.json b/.obsidian/starred.json deleted file mode 100644 index 61426683..00000000 --- a/.obsidian/starred.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "items": [ - { - "type": "file", - "title": "cheatsheet", - "path": "cheatsheet.md" - }, - { - "type": "file", - "title": "§0", - "path": "Syntax/BG4E-Syntax.md" - }, - { - "type": "file", - "title": "GGBB", - "path": "GGBB/GGBB.md" - }, - { - "type": "file", - "title": "IGNT", - "path": "IGNT/IGNT.md" - }, - { - "type": "file", - "title": "Phrasing-Signs", - "path": "50-Philippians/Phrasing-Signs.md" - } - ] -} \ No newline at end of file diff --git a/.obsidian/templates.json b/.obsidian/templates.json deleted file mode 100644 index 073dc986..00000000 --- a/.obsidian/templates.json +++ /dev/null @@ -1 +0,0 @@ -{"folder":"template/"} \ No newline at end of file diff --git a/.obsidian/workspace b/.obsidian/workspace deleted file mode 100644 index 91879dd8..00000000 --- a/.obsidian/workspace +++ /dev/null @@ -1,127 +0,0 @@ -{ - "main": { - "id": "7f95a67d9bc40b3d", - "type": "split", - "children": [ - { - "id": "1bc549648d22455f", - "type": "leaf", - "dimension": 40.77669902912621, - "state": { - "type": "markdown", - "state": { - "file": "README.md", - "mode": "source" - } - } - }, - { - "id": "f4fcbb501f222b26", - "type": "leaf", - "dimension": 59.22330097087378, - "state": { - "type": "markdown", - "state": { - "file": "README.md", - "mode": "preview" - } - } - } - ], - "direction": "vertical" - }, - "left": { - "id": "7b563e12ae0cae53", - "type": "split", - "children": [ - { - "id": "c98538fa04898bd1", - "type": "tabs", - "children": [ - { - "id": "034ea96b33b01929", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": {} - } - }, - { - "id": "ec1a8d74544268f0", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - } - } - }, - { - "id": "0de4355dac87d789", - "type": "leaf", - "state": { - "type": "starred", - "state": {} - } - } - ] - } - ], - "direction": "horizontal", - "width": 241.99999809265137 - }, - "right": { - "id": "2ebe4ede22a17df3", - "type": "split", - "children": [ - { - "id": "10b4dacb7f572639", - "type": "tabs", - "children": [ - { - "id": "90e8417d3d35b228", - "type": "leaf", - "state": { - "type": "tag", - "state": { - "sortOrder": "frequency", - "useHierarchy": true - } - } - }, - { - "id": "a5739e966aa3079b", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "README.md" - } - } - } - ] - } - ], - "direction": "horizontal", - "width": 300, - "collapsed": true - }, - "active": "1bc549648d22455f", - "lastOpenFiles": [ - "README.md", - "50-Philippians/Php.3.12-16.md", - "50-Philippians/Phrasing-Signs.md", - "50-Philippians/Php.3.17-21.md", - "50-Philippians/Philippians-Notes.md", - "50-Philippians/Php.3.1-11.md", - "50-Philippians/Philippians-Interlinear.md", - "62-1John/1John-Notes.md", - "Memorize.md", - "50-Philippians/Philippians-TC-Interlinear.md" - ] -} \ No newline at end of file diff --git a/.obsidian/workspaces.json b/.obsidian/workspaces.json deleted file mode 100644 index 8c70f753..00000000 --- a/.obsidian/workspaces.json +++ /dev/null @@ -1,261 +0,0 @@ -{ - "workspaces": { - "2Sync": { - "main": { - "id": "3969f3923e6cfedb", - "type": "split", - "children": [ - { - "id": "1a81d9f000627cca", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "62-1John/1Jo.3.19–24.md", - "mode": "source" - } - }, - "group": "98d95b26b4414933" - }, - { - "id": "e4c58faa39706a81", - "type": "leaf", - "state": { - "type": "markdown", - "state": { - "file": "62-1John/1Jo.3.19–24.md", - "mode": "preview" - } - }, - "group": "98d95b26b4414933" - } - ], - "direction": "vertical" - }, - "left": { - "id": "2b1e149eb78e8515", - "type": "split", - "children": [ - { - "id": "fb89deb39da52857", - "type": "tabs", - "children": [ - { - "id": "75b75d906b38f1fb", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": {} - } - }, - { - "id": "8b1314860610141a", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - } - } - }, - { - "id": "47f03e690283089d", - "type": "leaf", - "state": { - "type": "starred", - "state": {} - } - } - ] - } - ], - "direction": "horizontal", - "width": 267 - }, - "right": { - "id": "1464b72f66019d33", - "type": "split", - "children": [ - { - "id": "d0f62b3dd05030d0", - "type": "tabs", - "children": [ - { - "id": "8c60c8158acd8037", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "62-1John/1Jo.3.19–24.md" - } - } - } - ] - } - ], - "direction": "horizontal", - "width": 183.0555419921875, - "collapsed": true - }, - "active": "e4c58faa39706a81" - }, - "3Sync": { - "main": { - "id": "f4afcf6a714c05fb", - "type": "split", - "children": [ - { - "id": "1c93e914d62e8f8c", - "type": "split", - "dimension": 53.70030581039755, - "children": [ - { - "id": "97520d08ae64c5d1", - "type": "leaf", - "dimension": 51.3235294117647, - "state": { - "type": "markdown", - "state": { - "file": "50-Philippians/Php.1.3–11.md", - "mode": "source" - } - }, - "group": "b296ff829cc1189d" - }, - { - "id": "a3fe0d61e678dae7", - "type": "leaf", - "dimension": 48.67647058823529, - "state": { - "type": "markdown", - "state": { - "file": "50-Philippians/Php.1.3–11.md", - "mode": "source" - } - } - } - ], - "direction": "horizontal" - }, - { - "id": "ca98a89fbf86f418", - "type": "leaf", - "dimension": 46.29969418960245, - "state": { - "type": "markdown", - "state": { - "file": "50-Philippians/Php.1.3–11.md", - "mode": "preview" - } - }, - "group": "b296ff829cc1189d" - } - ], - "direction": "vertical" - }, - "left": { - "id": "2b1e149eb78e8515", - "type": "split", - "children": [ - { - "id": "fb89deb39da52857", - "type": "tabs", - "children": [ - { - "id": "75b75d906b38f1fb", - "type": "leaf", - "state": { - "type": "file-explorer", - "state": {} - } - }, - { - "id": "8b1314860610141a", - "type": "leaf", - "state": { - "type": "search", - "state": { - "query": "", - "matchingCase": false, - "explainSearch": false, - "collapseAll": false, - "extraContext": false, - "sortOrder": "alphabetical" - } - } - }, - { - "id": "47f03e690283089d", - "type": "leaf", - "state": { - "type": "starred", - "state": {} - } - } - ] - } - ], - "direction": "horizontal", - "width": 267, - "collapsed": true - }, - "right": { - "id": "1464b72f66019d33", - "type": "split", - "children": [ - { - "id": "d0f62b3dd05030d0", - "type": "tabs", - "children": [ - { - "id": "fc461d726b9ae279", - "type": "leaf", - "state": { - "type": "empty", - "state": {} - } - }, - { - "id": "cf8452731348166c", - "type": "leaf", - "state": { - "type": "empty", - "state": {} - } - }, - { - "id": "cbd6c34411c8328e", - "type": "leaf", - "state": { - "type": "empty", - "state": {} - } - }, - { - "id": "8c60c8158acd8037", - "type": "leaf", - "state": { - "type": "outline", - "state": { - "file": "50-Philippians/Php.1.3–11.md" - } - } - } - ], - "currentTab": 3 - } - ], - "direction": "horizontal", - "width": 183.0555419921875, - "collapsed": true - }, - "active": "97520d08ae64c5d1" - } - }, - "active": "2Sync" -} \ No newline at end of file