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} [0m`;
- args[0] = prefix + args[0].split("\n").join("\n" + prefix);
- args.push(colorCode + "m+" + module2.exports.humanize(this.diff) + "[0m");
- } 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": '