aboutsummaryrefslogtreecommitdiff
path: root/node_modules/simple-git/esm/index.js
diff options
context:
space:
mode:
authorScoots Dash <contact@minteck.org>2022-04-23 14:12:30 +0000
committerScoots Dash <contact@minteck.org>2022-04-23 14:12:30 +0000
commita927497b43cbe1438f3d7478932f3f7d03ea347c (patch)
tree0a3c88978b4294fb30afad58daa86c46fbedc2f6 /node_modules/simple-git/esm/index.js
parentba5fa694351774f2684c1aefdc215da5c6f39ba6 (diff)
parentf0db5bbbcd623812a391862d217519afafe197c6 (diff)
downloadtwilight-a927497b43cbe1438f3d7478932f3f7d03ea347c.tar.gz
twilight-a927497b43cbe1438f3d7478932f3f7d03ea347c.tar.bz2
twilight-a927497b43cbe1438f3d7478932f3f7d03ea347c.zip
Merge branch 'deprecation' into 'trunk'HEADtrunk
Disable the Twilight Package Manager See merge request minteck/twilight!1
Diffstat (limited to 'node_modules/simple-git/esm/index.js')
-rw-r--r--node_modules/simple-git/esm/index.js3763
1 files changed, 0 insertions, 3763 deletions
diff --git a/node_modules/simple-git/esm/index.js b/node_modules/simple-git/esm/index.js
deleted file mode 100644
index 4714cdb..0000000
--- a/node_modules/simple-git/esm/index.js
+++ /dev/null
@@ -1,3763 +0,0 @@
-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 __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 __esm = (fn, res) => function __init() {
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
-};
-var __commonJS = (cb, mod) => function __require() {
- return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
-};
-var __export = (target, all) => {
- for (var name in all)
- __defProp(target, name, { get: all[name], enumerable: true });
-};
-var __reExport = (target, module, copyDefault, desc) => {
- if (module && typeof module === "object" || typeof module === "function") {
- for (let key of __getOwnPropNames(module))
- if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
- __defProp(target, key, { get: () => module[key], enumerable: !(desc = __getOwnPropDesc(module, key)) || desc.enumerable });
- }
- return target;
-};
-var __toCommonJS = /* @__PURE__ */ ((cache) => {
- return (module, temp) => {
- return cache && cache.get(module) || (temp = __reExport(__markAsModule({}), module, 1), cache && cache.set(module, temp), temp);
- };
-})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
-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());
- });
-};
-
-// src/lib/errors/git-error.ts
-var GitError;
-var init_git_error = __esm({
- "src/lib/errors/git-error.ts"() {
- GitError = class extends Error {
- constructor(task, message) {
- super(message);
- this.task = task;
- Object.setPrototypeOf(this, new.target.prototype);
- }
- };
- }
-});
-
-// src/lib/errors/git-response-error.ts
-var GitResponseError;
-var init_git_response_error = __esm({
- "src/lib/errors/git-response-error.ts"() {
- init_git_error();
- GitResponseError = class extends GitError {
- constructor(git, message) {
- super(void 0, message || String(git));
- this.git = git;
- }
- };
- }
-});
-
-// src/lib/errors/task-configuration-error.ts
-var TaskConfigurationError;
-var init_task_configuration_error = __esm({
- "src/lib/errors/task-configuration-error.ts"() {
- init_git_error();
- TaskConfigurationError = class extends GitError {
- constructor(message) {
- super(void 0, message);
- }
- };
- }
-});
-
-// src/lib/utils/util.ts
-import { exists, FOLDER } from "@kwsites/file-exists";
-function asFunction(source) {
- return typeof source === "function" ? source : NOOP;
-}
-function isUserFunction(source) {
- return typeof source === "function" && source !== NOOP;
-}
-function splitOn(input, char) {
- const index = input.indexOf(char);
- if (index <= 0) {
- return [input, ""];
- }
- return [
- input.substr(0, index),
- input.substr(index + 1)
- ];
-}
-function first(input, offset = 0) {
- return isArrayLike(input) && input.length > offset ? input[offset] : void 0;
-}
-function last(input, offset = 0) {
- if (isArrayLike(input) && input.length > offset) {
- return input[input.length - 1 - offset];
- }
-}
-function isArrayLike(input) {
- return !!(input && typeof input.length === "number");
-}
-function toLinesWithContent(input = "", trimmed2 = true, separator = "\n") {
- return input.split(separator).reduce((output, line) => {
- const lineContent = trimmed2 ? line.trim() : line;
- if (lineContent) {
- output.push(lineContent);
- }
- return output;
- }, []);
-}
-function forEachLineWithContent(input, callback) {
- return toLinesWithContent(input, true).map((line) => callback(line));
-}
-function folderExists(path) {
- return exists(path, FOLDER);
-}
-function append(target, item) {
- if (Array.isArray(target)) {
- if (!target.includes(item)) {
- target.push(item);
- }
- } else {
- target.add(item);
- }
- return item;
-}
-function including(target, item) {
- if (Array.isArray(target) && !target.includes(item)) {
- target.push(item);
- }
- return target;
-}
-function remove(target, item) {
- if (Array.isArray(target)) {
- const index = target.indexOf(item);
- if (index >= 0) {
- target.splice(index, 1);
- }
- } else {
- target.delete(item);
- }
- return item;
-}
-function asArray(source) {
- return Array.isArray(source) ? source : [source];
-}
-function asStringArray(source) {
- return asArray(source).map(String);
-}
-function asNumber(source, onNaN = 0) {
- if (source == null) {
- return onNaN;
- }
- const num = parseInt(source, 10);
- return isNaN(num) ? onNaN : num;
-}
-function prefixedArray(input, prefix) {
- const output = [];
- for (let i = 0, max = input.length; i < max; i++) {
- output.push(prefix, input[i]);
- }
- return output;
-}
-function bufferToString(input) {
- return (Array.isArray(input) ? Buffer.concat(input) : input).toString("utf-8");
-}
-function pick(source, properties) {
- return Object.assign({}, ...properties.map((property) => property in source ? { [property]: source[property] } : {}));
-}
-function delay(duration = 0) {
- return new Promise((done) => setTimeout(done, duration));
-}
-var NULL, NOOP, objectToString;
-var init_util = __esm({
- "src/lib/utils/util.ts"() {
- NULL = "\0";
- NOOP = () => {
- };
- objectToString = Object.prototype.toString.call.bind(Object.prototype.toString);
- }
-});
-
-// src/lib/utils/argument-filters.ts
-function filterType(input, filter, def) {
- if (filter(input)) {
- return input;
- }
- return arguments.length > 2 ? def : void 0;
-}
-function filterPrimitives(input, omit) {
- return /number|string|boolean/.test(typeof input) && (!omit || !omit.includes(typeof input));
-}
-function filterPlainObject(input) {
- return !!input && objectToString(input) === "[object Object]";
-}
-function filterFunction(input) {
- return typeof input === "function";
-}
-var filterArray, filterString, filterStringArray, filterStringOrStringArray, filterHasLength;
-var init_argument_filters = __esm({
- "src/lib/utils/argument-filters.ts"() {
- init_util();
- filterArray = (input) => {
- return Array.isArray(input);
- };
- filterString = (input) => {
- return typeof input === "string";
- };
- filterStringArray = (input) => {
- return Array.isArray(input) && input.every(filterString);
- };
- filterStringOrStringArray = (input) => {
- return filterString(input) || Array.isArray(input) && input.every(filterString);
- };
- filterHasLength = (input) => {
- if (input == null || "number|boolean|function".includes(typeof input)) {
- return false;
- }
- return Array.isArray(input) || typeof input === "string" || typeof input.length === "number";
- };
- }
-});
-
-// src/lib/utils/exit-codes.ts
-var ExitCodes;
-var init_exit_codes = __esm({
- "src/lib/utils/exit-codes.ts"() {
- ExitCodes = /* @__PURE__ */ ((ExitCodes2) => {
- ExitCodes2[ExitCodes2["SUCCESS"] = 0] = "SUCCESS";
- ExitCodes2[ExitCodes2["ERROR"] = 1] = "ERROR";
- ExitCodes2[ExitCodes2["UNCLEAN"] = 128] = "UNCLEAN";
- return ExitCodes2;
- })(ExitCodes || {});
- }
-});
-
-// src/lib/utils/git-output-streams.ts
-var GitOutputStreams;
-var init_git_output_streams = __esm({
- "src/lib/utils/git-output-streams.ts"() {
- GitOutputStreams = class {
- constructor(stdOut, stdErr) {
- this.stdOut = stdOut;
- this.stdErr = stdErr;
- }
- asStrings() {
- return new GitOutputStreams(this.stdOut.toString("utf8"), this.stdErr.toString("utf8"));
- }
- };
- }
-});
-
-// src/lib/utils/line-parser.ts
-var LineParser, RemoteLineParser;
-var init_line_parser = __esm({
- "src/lib/utils/line-parser.ts"() {
- LineParser = class {
- constructor(regExp, useMatches) {
- this.matches = [];
- this.parse = (line, target) => {
- this.resetMatches();
- if (!this._regExp.every((reg, index) => this.addMatch(reg, index, line(index)))) {
- return false;
- }
- return this.useMatches(target, this.prepareMatches()) !== false;
- };
- this._regExp = Array.isArray(regExp) ? regExp : [regExp];
- if (useMatches) {
- this.useMatches = useMatches;
- }
- }
- useMatches(target, match) {
- throw new Error(`LineParser:useMatches not implemented`);
- }
- resetMatches() {
- this.matches.length = 0;
- }
- prepareMatches() {
- return this.matches;
- }
- addMatch(reg, index, line) {
- const matched = line && reg.exec(line);
- if (matched) {
- this.pushMatch(index, matched);
- }
- return !!matched;
- }
- pushMatch(_index, matched) {
- this.matches.push(...matched.slice(1));
- }
- };
- RemoteLineParser = class extends LineParser {
- addMatch(reg, index, line) {
- return /^remote:\s/.test(String(line)) && super.addMatch(reg, index, line);
- }
- pushMatch(index, matched) {
- if (index > 0 || matched.length > 1) {
- super.pushMatch(index, matched);
- }
- }
- };
- }
-});
-
-// src/lib/utils/simple-git-options.ts
-function createInstanceConfig(...options) {
- const baseDir = process.cwd();
- const config = Object.assign(__spreadValues({ baseDir }, defaultOptions), ...options.filter((o) => typeof o === "object" && o));
- config.baseDir = config.baseDir || baseDir;
- return config;
-}
-var defaultOptions;
-var init_simple_git_options = __esm({
- "src/lib/utils/simple-git-options.ts"() {
- defaultOptions = {
- binary: "git",
- maxConcurrentProcesses: 5,
- config: []
- };
- }
-});
-
-// src/lib/utils/task-options.ts
-function appendTaskOptions(options, commands = []) {
- if (!filterPlainObject(options)) {
- return commands;
- }
- return Object.keys(options).reduce((commands2, key) => {
- const value = options[key];
- if (filterPrimitives(value, ["boolean"])) {
- commands2.push(key + "=" + value);
- } else {
- commands2.push(key);
- }
- return commands2;
- }, commands);
-}
-function getTrailingOptions(args, initialPrimitive = 0, objectOnly = false) {
- const command = [];
- for (let i = 0, max = initialPrimitive < 0 ? args.length : initialPrimitive; i < max; i++) {
- if ("string|number".includes(typeof args[i])) {
- command.push(String(args[i]));
- }
- }
- appendTaskOptions(trailingOptionsArgument(args), command);
- if (!objectOnly) {
- command.push(...trailingArrayArgument(args));
- }
- return command;
-}
-function trailingArrayArgument(args) {
- const hasTrailingCallback = typeof last(args) === "function";
- return filterType(last(args, hasTrailingCallback ? 1 : 0), filterArray, []);
-}
-function trailingOptionsArgument(args) {
- const hasTrailingCallback = filterFunction(last(args));
- return filterType(last(args, hasTrailingCallback ? 1 : 0), filterPlainObject);
-}
-function trailingFunctionArgument(args, includeNoop = true) {
- const callback = asFunction(last(args));
- return includeNoop || isUserFunction(callback) ? callback : void 0;
-}
-var init_task_options = __esm({
- "src/lib/utils/task-options.ts"() {
- init_argument_filters();
- init_util();
- }
-});
-
-// src/lib/utils/task-parser.ts
-function callTaskParser(parser3, streams) {
- return parser3(streams.stdOut, streams.stdErr);
-}
-function parseStringResponse(result, parsers11, ...texts) {
- texts.forEach((text) => {
- for (let lines = toLinesWithContent(text), i = 0, max = lines.length; i < max; i++) {
- const line = (offset = 0) => {
- if (i + offset >= max) {
- return;
- }
- return lines[i + offset];
- };
- parsers11.some(({ parse }) => parse(line, result));
- }
- });
- return result;
-}
-var init_task_parser = __esm({
- "src/lib/utils/task-parser.ts"() {
- init_util();
- }
-});
-
-// src/lib/utils/index.ts
-var utils_exports = {};
-__export(utils_exports, {
- ExitCodes: () => ExitCodes,
- GitOutputStreams: () => GitOutputStreams,
- LineParser: () => LineParser,
- NOOP: () => NOOP,
- NULL: () => NULL,
- RemoteLineParser: () => RemoteLineParser,
- append: () => append,
- appendTaskOptions: () => appendTaskOptions,
- asArray: () => asArray,
- asFunction: () => asFunction,
- asNumber: () => asNumber,
- asStringArray: () => asStringArray,
- bufferToString: () => bufferToString,
- callTaskParser: () => callTaskParser,
- createInstanceConfig: () => createInstanceConfig,
- delay: () => delay,
- filterArray: () => filterArray,
- filterFunction: () => filterFunction,
- filterHasLength: () => filterHasLength,
- filterPlainObject: () => filterPlainObject,
- filterPrimitives: () => filterPrimitives,
- filterString: () => filterString,
- filterStringArray: () => filterStringArray,
- filterStringOrStringArray: () => filterStringOrStringArray,
- filterType: () => filterType,
- first: () => first,
- folderExists: () => folderExists,
- forEachLineWithContent: () => forEachLineWithContent,
- getTrailingOptions: () => getTrailingOptions,
- including: () => including,
- isUserFunction: () => isUserFunction,
- last: () => last,
- objectToString: () => objectToString,
- parseStringResponse: () => parseStringResponse,
- pick: () => pick,
- prefixedArray: () => prefixedArray,
- remove: () => remove,
- splitOn: () => splitOn,
- toLinesWithContent: () => toLinesWithContent,
- trailingFunctionArgument: () => trailingFunctionArgument,
- trailingOptionsArgument: () => trailingOptionsArgument
-});
-var init_utils = __esm({
- "src/lib/utils/index.ts"() {
- init_argument_filters();
- init_exit_codes();
- init_git_output_streams();
- init_line_parser();
- init_simple_git_options();
- init_task_options();
- init_task_parser();
- init_util();
- }
-});
-
-// src/lib/tasks/check-is-repo.ts
-var check_is_repo_exports = {};
-__export(check_is_repo_exports, {
- CheckRepoActions: () => CheckRepoActions,
- checkIsBareRepoTask: () => checkIsBareRepoTask,
- checkIsRepoRootTask: () => checkIsRepoRootTask,
- checkIsRepoTask: () => checkIsRepoTask
-});
-function checkIsRepoTask(action) {
- switch (action) {
- case "bare" /* BARE */:
- return checkIsBareRepoTask();
- case "root" /* IS_REPO_ROOT */:
- return checkIsRepoRootTask();
- }
- const commands = ["rev-parse", "--is-inside-work-tree"];
- return {
- commands,
- format: "utf-8",
- onError,
- parser
- };
-}
-function checkIsRepoRootTask() {
- const commands = ["rev-parse", "--git-dir"];
- return {
- commands,
- format: "utf-8",
- onError,
- parser(path) {
- return /^\.(git)?$/.test(path.trim());
- }
- };
-}
-function checkIsBareRepoTask() {
- const commands = ["rev-parse", "--is-bare-repository"];
- return {
- commands,
- format: "utf-8",
- onError,
- parser
- };
-}
-function isNotRepoMessage(error) {
- return /(Not a git repository|Kein Git-Repository)/i.test(String(error));
-}
-var CheckRepoActions, onError, parser;
-var init_check_is_repo = __esm({
- "src/lib/tasks/check-is-repo.ts"() {
- init_utils();
- CheckRepoActions = /* @__PURE__ */ ((CheckRepoActions2) => {
- CheckRepoActions2["BARE"] = "bare";
- CheckRepoActions2["IN_TREE"] = "tree";
- CheckRepoActions2["IS_REPO_ROOT"] = "root";
- return CheckRepoActions2;
- })(CheckRepoActions || {});
- onError = ({ exitCode }, error, done, fail) => {
- if (exitCode === 128 /* UNCLEAN */ && isNotRepoMessage(error)) {
- return done(Buffer.from("false"));
- }
- fail(error);
- };
- parser = (text) => {
- return text.trim() === "true";
- };
- }
-});
-
-// src/lib/responses/CleanSummary.ts
-function cleanSummaryParser(dryRun, text) {
- const summary = new CleanResponse(dryRun);
- const regexp = dryRun ? dryRunRemovalRegexp : removalRegexp;
- toLinesWithContent(text).forEach((line) => {
- const removed = line.replace(regexp, "");
- summary.paths.push(removed);
- (isFolderRegexp.test(removed) ? summary.folders : summary.files).push(removed);
- });
- return summary;
-}
-var CleanResponse, removalRegexp, dryRunRemovalRegexp, isFolderRegexp;
-var init_CleanSummary = __esm({
- "src/lib/responses/CleanSummary.ts"() {
- init_utils();
- CleanResponse = class {
- constructor(dryRun) {
- this.dryRun = dryRun;
- this.paths = [];
- this.files = [];
- this.folders = [];
- }
- };
- removalRegexp = /^[a-z]+\s*/i;
- dryRunRemovalRegexp = /^[a-z]+\s+[a-z]+\s*/i;
- isFolderRegexp = /\/$/;
- }
-});
-
-// src/lib/tasks/task.ts
-var task_exports = {};
-__export(task_exports, {
- EMPTY_COMMANDS: () => EMPTY_COMMANDS,
- adhocExecTask: () => adhocExecTask,
- configurationErrorTask: () => configurationErrorTask,
- isBufferTask: () => isBufferTask,
- isEmptyTask: () => isEmptyTask,
- straightThroughBufferTask: () => straightThroughBufferTask,
- straightThroughStringTask: () => straightThroughStringTask
-});
-function adhocExecTask(parser3) {
- return {
- commands: EMPTY_COMMANDS,
- format: "empty",
- parser: parser3
- };
-}
-function configurationErrorTask(error) {
- return {
- commands: EMPTY_COMMANDS,
- format: "empty",
- parser() {
- throw typeof error === "string" ? new TaskConfigurationError(error) : error;
- }
- };
-}
-function straightThroughStringTask(commands, trimmed2 = false) {
- return {
- commands,
- format: "utf-8",
- parser(text) {
- return trimmed2 ? String(text).trim() : text;
- }
- };
-}
-function straightThroughBufferTask(commands) {
- return {
- commands,
- format: "buffer",
- parser(buffer) {
- return buffer;
- }
- };
-}
-function isBufferTask(task) {
- return task.format === "buffer";
-}
-function isEmptyTask(task) {
- return task.format === "empty" || !task.commands.length;
-}
-var EMPTY_COMMANDS;
-var init_task = __esm({
- "src/lib/tasks/task.ts"() {
- init_task_configuration_error();
- EMPTY_COMMANDS = [];
- }
-});
-
-// src/lib/tasks/clean.ts
-var clean_exports = {};
-__export(clean_exports, {
- CONFIG_ERROR_INTERACTIVE_MODE: () => CONFIG_ERROR_INTERACTIVE_MODE,
- CONFIG_ERROR_MODE_REQUIRED: () => CONFIG_ERROR_MODE_REQUIRED,
- CONFIG_ERROR_UNKNOWN_OPTION: () => CONFIG_ERROR_UNKNOWN_OPTION,
- CleanOptions: () => CleanOptions,
- cleanTask: () => cleanTask,
- cleanWithOptionsTask: () => cleanWithOptionsTask,
- isCleanOptionsArray: () => isCleanOptionsArray
-});
-function cleanWithOptionsTask(mode, customArgs) {
- const { cleanMode, options, valid } = getCleanOptions(mode);
- if (!cleanMode) {
- return configurationErrorTask(CONFIG_ERROR_MODE_REQUIRED);
- }
- if (!valid.options) {
- return configurationErrorTask(CONFIG_ERROR_UNKNOWN_OPTION + JSON.stringify(mode));
- }
- options.push(...customArgs);
- if (options.some(isInteractiveMode)) {
- return configurationErrorTask(CONFIG_ERROR_INTERACTIVE_MODE);
- }
- return cleanTask(cleanMode, options);
-}
-function cleanTask(mode, customArgs) {
- const commands = ["clean", `-${mode}`, ...customArgs];
- return {
- commands,
- format: "utf-8",
- parser(text) {
- return cleanSummaryParser(mode === "n" /* DRY_RUN */, text);
- }
- };
-}
-function isCleanOptionsArray(input) {
- return Array.isArray(input) && input.every((test) => CleanOptionValues.has(test));
-}
-function getCleanOptions(input) {
- let cleanMode;
- let options = [];
- let valid = { cleanMode: false, options: true };
- input.replace(/[^a-z]i/g, "").split("").forEach((char) => {
- if (isCleanMode(char)) {
- cleanMode = char;
- valid.cleanMode = true;
- } else {
- valid.options = valid.options && isKnownOption(options[options.length] = `-${char}`);
- }
- });
- return {
- cleanMode,
- options,
- valid
- };
-}
-function isCleanMode(cleanMode) {
- return cleanMode === "f" /* FORCE */ || cleanMode === "n" /* 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";
-}
-var CONFIG_ERROR_INTERACTIVE_MODE, CONFIG_ERROR_MODE_REQUIRED, CONFIG_ERROR_UNKNOWN_OPTION, CleanOptions, CleanOptionValues;
-var init_clean = __esm({
- "src/lib/tasks/clean.ts"() {
- init_CleanSummary();
- init_utils();
- init_task();
- CONFIG_ERROR_INTERACTIVE_MODE = "Git clean interactive mode is not supported";
- CONFIG_ERROR_MODE_REQUIRED = 'Git clean mode parameter ("n" or "f") is required';
- CONFIG_ERROR_UNKNOWN_OPTION = "Git clean unknown option found in: ";
- CleanOptions = /* @__PURE__ */ ((CleanOptions2) => {
- CleanOptions2["DRY_RUN"] = "n";
- CleanOptions2["FORCE"] = "f";
- CleanOptions2["IGNORED_INCLUDED"] = "x";
- CleanOptions2["IGNORED_ONLY"] = "X";
- CleanOptions2["EXCLUDING"] = "e";
- CleanOptions2["QUIET"] = "q";
- CleanOptions2["RECURSIVE"] = "d";
- return CleanOptions2;
- })(CleanOptions || {});
- CleanOptionValues = /* @__PURE__ */ new Set(["i", ...asStringArray(Object.values(CleanOptions))]);
- }
-});
-
-// src/lib/responses/ConfigList.ts
-function configListParser(text) {
- const config = new ConfigList();
- for (const item of configParser(text)) {
- config.addValue(item.file, String(item.key), item.value);
- }
- return config;
-}
-function configGetParser(text, key) {
- let value = null;
- const values = [];
- const scopes = /* @__PURE__ */ new Map();
- for (const item of configParser(text, 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
- };
-}
-function configFilePath(filePath) {
- return filePath.replace(/^(file):/, "");
-}
-function* configParser(text, requestedKey = null) {
- const lines = text.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 = splitOn(value, "\n");
- key = line[0];
- value = line[1];
- }
- yield { file, key, value };
- }
-}
-var ConfigList;
-var init_ConfigList = __esm({
- "src/lib/responses/ConfigList.ts"() {
- init_utils();
- ConfigList = class {
- constructor() {
- this.files = [];
- this.values = /* @__PURE__ */ Object.create(null);
- }
- get all() {
- if (!this._all) {
- this._all = this.files.reduce((all, file) => {
- return Object.assign(all, this.values[file]);
- }, {});
- }
- return this._all;
- }
- addFile(file) {
- if (!(file in this.values)) {
- const latest = last(this.files);
- this.values[file] = latest ? Object.create(this.values[latest]) : {};
- this.files.push(file);
- }
- return this.values[file];
- }
- addValue(file, 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;
- }
- };
- }
-});
-
-// src/lib/tasks/config.ts
-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(text) {
- return text;
- }
- };
-}
-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(text) {
- return configGetParser(text, key);
- }
- };
-}
-function listConfigTask(scope) {
- const commands = ["config", "--list", "--show-origin", "--null"];
- if (scope) {
- commands.push(`--${scope}`);
- }
- return {
- commands,
- format: "utf-8",
- parser(text) {
- return configListParser(text);
- }
- };
-}
-function config_default() {
- return {
- addConfig(key, value, ...rest) {
- return this._runTask(addConfigTask(key, value, rest[0] === true, asConfigScope(rest[1], "local" /* local */)), trailingFunctionArgument(arguments));
- },
- getConfig(key, scope) {
- return this._runTask(getConfigTask(key, asConfigScope(scope, void 0)), trailingFunctionArgument(arguments));
- },
- listConfig(...rest) {
- return this._runTask(listConfigTask(asConfigScope(rest[0], void 0)), trailingFunctionArgument(arguments));
- }
- };
-}
-var GitConfigScope;
-var init_config = __esm({
- "src/lib/tasks/config.ts"() {
- init_ConfigList();
- init_utils();
- GitConfigScope = /* @__PURE__ */ ((GitConfigScope2) => {
- GitConfigScope2["system"] = "system";
- GitConfigScope2["global"] = "global";
- GitConfigScope2["local"] = "local";
- GitConfigScope2["worktree"] = "worktree";
- return GitConfigScope2;
- })(GitConfigScope || {});
- }
-});
-
-// src/lib/tasks/grep.ts
-function grepQueryBuilder(...params) {
- return new GrepQuery().param(...params);
-}
-function parseGrep(grep) {
- const paths = /* @__PURE__ */ new Set();
- const results = {};
- forEachLineWithContent(grep, (input) => {
- const [path, line, preview] = input.split(NULL);
- paths.add(path);
- (results[path] = results[path] || []).push({
- line: asNumber(line),
- path,
- preview
- });
- });
- return {
- paths,
- results
- };
-}
-function grep_default() {
- return {
- grep(searchTerm) {
- const then = trailingFunctionArgument(arguments);
- const options = getTrailingOptions(arguments);
- for (const option of disallowedOptions) {
- if (options.includes(option)) {
- return this._runTask(configurationErrorTask(`git.grep: use of "${option}" is not supported.`), then);
- }
- }
- if (typeof searchTerm === "string") {
- searchTerm = grepQueryBuilder().param(searchTerm);
- }
- const commands = ["grep", "--null", "-n", "--full-name", ...options, ...searchTerm];
- return this._runTask({
- commands,
- format: "utf-8",
- parser(stdOut) {
- return parseGrep(stdOut);
- }
- }, then);
- }
- };
-}
-var disallowedOptions, Query, _a, GrepQuery;
-var init_grep = __esm({
- "src/lib/tasks/grep.ts"() {
- init_utils();
- init_task();
- disallowedOptions = ["-h"];
- Query = Symbol("grepQuery");
- GrepQuery = class {
- constructor() {
- this[_a] = [];
- }
- *[(_a = Query, Symbol.iterator)]() {
- for (const query of this[Query]) {
- yield query;
- }
- }
- and(...and) {
- and.length && this[Query].push("--and", "(", ...prefixedArray(and, "-e"), ")");
- return this;
- }
- param(...param) {
- this[Query].push(...prefixedArray(param, "-e"));
- return this;
- }
- };
- }
-});
-
-// src/lib/tasks/reset.ts
-var reset_exports = {};
-__export(reset_exports, {
- ResetMode: () => ResetMode,
- getResetMode: () => getResetMode,
- resetTask: () => resetTask
-});
-function resetTask(mode, customArgs) {
- const commands = ["reset"];
- if (isValidResetMode(mode)) {
- commands.push(`--${mode}`);
- }
- commands.push(...customArgs);
- return straightThroughStringTask(commands);
-}
-function getResetMode(mode) {
- if (isValidResetMode(mode)) {
- return mode;
- }
- switch (typeof mode) {
- case "string":
- case "undefined":
- return "soft" /* SOFT */;
- }
- return;
-}
-function isValidResetMode(mode) {
- return ResetModes.includes(mode);
-}
-var ResetMode, ResetModes;
-var init_reset = __esm({
- "src/lib/tasks/reset.ts"() {
- init_task();
- ResetMode = /* @__PURE__ */ ((ResetMode2) => {
- ResetMode2["MIXED"] = "mixed";
- ResetMode2["SOFT"] = "soft";
- ResetMode2["HARD"] = "hard";
- ResetMode2["MERGE"] = "merge";
- ResetMode2["KEEP"] = "keep";
- return ResetMode2;
- })(ResetMode || {});
- ResetModes = Array.from(Object.values(ResetMode));
- }
-});
-
-// src/lib/git-logger.ts
-import debug from "debug";
-function createLog() {
- return debug("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(filterType(verbose, filterString), debugDebugger, infoDebugger);
- return step(initialStep);
- function sibling(name, initial) {
- return append(spawned, createLogger(label, key.replace(/^[^:]+/, name), initial, infoDebugger));
- }
- function step(phase) {
- const stepPrefix = phase && `[${phase}]` || "";
- const debug2 = debugDebugger && prefixedLogger(debugDebugger, stepPrefix) || NOOP;
- const info = prefixedLogger(infoDebugger, `${labelPrefix} ${stepPrefix}`, debug2);
- return Object.assign(debugDebugger ? debug2 : info, {
- label,
- sibling,
- info,
- step
- });
- }
-}
-var init_git_logger = __esm({
- "src/lib/git-logger.ts"() {
- init_utils();
- debug.formatters.L = (value) => String(filterHasLength(value) ? value.length : "-");
- debug.formatters.B = (value) => {
- if (Buffer.isBuffer(value)) {
- return value.toString("utf8");
- }
- return objectToString(value);
- };
- }
-});
-
-// src/lib/runners/tasks-pending-queue.ts
-var _TasksPendingQueue, TasksPendingQueue;
-var init_tasks_pending_queue = __esm({
- "src/lib/runners/tasks-pending-queue.ts"() {
- init_git_error();
- init_git_logger();
- _TasksPendingQueue = class {
- constructor(logLabel = "GitExecutor") {
- this.logLabel = logLabel;
- this._queue = /* @__PURE__ */ new Map();
- }
- withProgress(task) {
- return this._queue.get(task);
- }
- createProgress(task) {
- const name = _TasksPendingQueue.getName(task.commands[0]);
- const logger = createLogger(this.logLabel, name);
- return {
- task,
- logger,
- name
- };
- }
- push(task) {
- const progress = this.createProgress(task);
- progress.logger("Adding task to the queue, commands = %o", task.commands);
- this._queue.set(task, progress);
- return progress;
- }
- fatal(err) {
- for (const [task, { logger }] of Array.from(this._queue.entries())) {
- if (task === err.task) {
- logger.info(`Failed %o`, err);
- logger(`Fatal exception, any as-yet un-started tasks run through this executor will not be attempted`);
- } else {
- logger.info(`A fatal exception occurred in a previous task, the queue has been purged: %o`, err.message);
- }
- this.complete(task);
- }
- if (this._queue.size !== 0) {
- throw new Error(`Queue size should be zero after fatal: ${this._queue.size}`);
- }
- }
- complete(task) {
- const progress = this.withProgress(task);
- if (progress) {
- this._queue.delete(task);
- }
- }
- attempt(task) {
- const progress = this.withProgress(task);
- if (!progress) {
- throw new GitError(void 0, "TasksPendingQueue: attempt called for an unknown task");
- }
- progress.logger("Starting task");
- return progress;
- }
- static getName(name = "empty") {
- return `task:${name}:${++_TasksPendingQueue.counter}`;
- }
- };
- TasksPendingQueue = _TasksPendingQueue;
- TasksPendingQueue.counter = 0;
- }
-});
-
-// src/lib/runners/git-executor-chain.ts
-import { spawn } from "child_process";
-function pluginContext(task, commands) {
- return {
- method: first(task.commands) || "",
- commands
- };
-}
-function onErrorReceived(target, logger) {
- return (err) => {
- logger(`[ERROR] child process exception %o`, err);
- target.push(Buffer.from(String(err.stack), "ascii"));
- };
-}
-function onDataReceived(target, name, logger, output) {
- return (buffer) => {
- logger(`%s received %L bytes`, name, buffer);
- output(`%B`, buffer);
- target.push(buffer);
- };
-}
-var GitExecutorChain;
-var init_git_executor_chain = __esm({
- "src/lib/runners/git-executor-chain.ts"() {
- init_git_error();
- init_task();
- init_utils();
- init_tasks_pending_queue();
- GitExecutorChain = class {
- constructor(_executor, _scheduler, _plugins) {
- this._executor = _executor;
- this._scheduler = _scheduler;
- this._plugins = _plugins;
- this._chain = Promise.resolve();
- this._queue = new TasksPendingQueue();
- }
- get binary() {
- return this._executor.binary;
- }
- get cwd() {
- return this._cwd || this._executor.cwd;
- }
- set cwd(cwd) {
- this._cwd = cwd;
- }
- get env() {
- return this._executor.env;
- }
- get outputHandler() {
- return this._executor.outputHandler;
- }
- chain() {
- return this;
- }
- push(task) {
- this._queue.push(task);
- return this._chain = this._chain.then(() => this.attemptTask(task));
- }
- attemptTask(task) {
- return __async(this, null, function* () {
- const onScheduleComplete = yield this._scheduler.next();
- const onQueueComplete = () => this._queue.complete(task);
- try {
- const { logger } = this._queue.attempt(task);
- return yield isEmptyTask(task) ? this.attemptEmptyTask(task, logger) : this.attemptRemoteTask(task, logger);
- } catch (e) {
- throw this.onFatalException(task, e);
- } finally {
- onQueueComplete();
- onScheduleComplete();
- }
- });
- }
- onFatalException(task, e) {
- const gitError = e instanceof GitError ? Object.assign(e, { task }) : new GitError(task, e && String(e));
- this._chain = Promise.resolve();
- this._queue.fatal(gitError);
- return gitError;
- }
- attemptRemoteTask(task, logger) {
- return __async(this, null, function* () {
- const args = this._plugins.exec("spawn.args", [...task.commands], pluginContext(task, task.commands));
- const raw = yield this.gitResponse(task, this.binary, args, this.outputHandler, logger.step("SPAWN"));
- const outputStreams = yield this.handleTaskData(task, args, raw, logger.step("HANDLE"));
- logger(`passing response to task's parser as a %s`, task.format);
- if (isBufferTask(task)) {
- return callTaskParser(task.parser, outputStreams);
- }
- return callTaskParser(task.parser, outputStreams.asStrings());
- });
- }
- attemptEmptyTask(task, logger) {
- return __async(this, null, function* () {
- logger(`empty task bypassing child process to call to task's parser`);
- return task.parser(this);
- });
- }
- handleTaskData(task, args, result, logger) {
- const { exitCode, rejection, stdOut, stdErr } = result;
- return new Promise((done, fail) => {
- logger(`Preparing to handle process response exitCode=%d stdOut=`, exitCode);
- const { error } = this._plugins.exec("task.error", { error: rejection }, __spreadValues(__spreadValues({}, pluginContext(task, args)), result));
- if (error && task.onError) {
- logger.info(`exitCode=%s handling with custom error handler`);
- return task.onError(result, error, (newStdOut) => {
- logger.info(`custom error handler treated as success`);
- logger(`custom error returned a %s`, objectToString(newStdOut));
- done(new GitOutputStreams(Array.isArray(newStdOut) ? Buffer.concat(newStdOut) : newStdOut, Buffer.concat(stdErr)));
- }, fail);
- }
- if (error) {
- logger.info(`handling as error: exitCode=%s stdErr=%s rejection=%o`, exitCode, stdErr.length, rejection);
- return fail(error);
- }
- logger.info(`retrieving task output complete`);
- done(new GitOutputStreams(Buffer.concat(stdOut), Buffer.concat(stdErr)));
- });
- }
- gitResponse(task, command, args, outputHandler, logger) {
- return __async(this, null, function* () {
- const outputLogger = logger.sibling("output");
- const spawnOptions = this._plugins.exec("spawn.options", {
- cwd: this.cwd,
- env: this.env,
- windowsHide: true
- }, pluginContext(task, task.commands));
- return new Promise((done) => {
- const stdOut = [];
- const stdErr = [];
- let rejection;
- logger.info(`%s %o`, command, args);
- logger("%O", spawnOptions);
- const spawned = 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, __spreadProps(__spreadValues({}, 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");
- }
- }));
- });
- });
- }
- };
- }
-});
-
-// src/lib/runners/git-executor.ts
-var git_executor_exports = {};
-__export(git_executor_exports, {
- GitExecutor: () => GitExecutor
-});
-var GitExecutor;
-var init_git_executor = __esm({
- "src/lib/runners/git-executor.ts"() {
- init_git_executor_chain();
- GitExecutor = class {
- constructor(binary = "git", cwd, _scheduler, _plugins) {
- this.binary = binary;
- this.cwd = cwd;
- this._scheduler = _scheduler;
- this._plugins = _plugins;
- this._chain = new GitExecutorChain(this, this._scheduler, this._plugins);
- }
- chain() {
- return new GitExecutorChain(this, this._scheduler, this._plugins);
- }
- push(task) {
- return this._chain.push(task);
- }
- };
- }
-});
-
-// src/lib/task-callback.ts
-function taskCallback(task, response, callback = NOOP) {
- const onSuccess = (data) => {
- callback(null, data);
- };
- const onError2 = (err) => {
- if ((err == null ? void 0 : err.task) === task) {
- callback(err instanceof GitResponseError ? addDeprecationNoticeToError(err) : err, void 0);
- }
- };
- response.then(onSuccess, onError2);
-}
-function addDeprecationNoticeToError(err) {
- let log = (name) => {
- console.warn(`simple-git deprecation notice: accessing GitResponseError.${name} should be GitResponseError.git.${name}, this will no longer be available in version 3`);
- log = NOOP;
- };
- return Object.create(err, Object.getOwnPropertyNames(err.git).reduce(descriptorReducer, {}));
- function descriptorReducer(all, name) {
- if (name in err) {
- return all;
- }
- all[name] = {
- enumerable: false,
- configurable: false,
- get() {
- log(name);
- return err.git[name];
- }
- };
- return all;
- }
-}
-var init_task_callback = __esm({
- "src/lib/task-callback.ts"() {
- init_git_response_error();
- init_utils();
- }
-});
-
-// src/lib/tasks/change-working-directory.ts
-function changeWorkingDirectoryTask(directory, root) {
- return adhocExecTask((instance) => {
- if (!folderExists(directory)) {
- throw new Error(`Git.cwd: cannot change to non-directory "${directory}"`);
- }
- return (root || instance).cwd = directory;
- });
-}
-var init_change_working_directory = __esm({
- "src/lib/tasks/change-working-directory.ts"() {
- init_utils();
- init_task();
- }
-});
-
-// src/lib/tasks/hash-object.ts
-function hashObjectTask(filePath, write) {
- const commands = ["hash-object", filePath];
- if (write) {
- commands.push("-w");
- }
- return straightThroughStringTask(commands, true);
-}
-var init_hash_object = __esm({
- "src/lib/tasks/hash-object.ts"() {
- init_task();
- }
-});
-
-// src/lib/responses/InitSummary.ts
-function parseInit(bare, path, text) {
- const response = String(text).trim();
- let result;
- if (result = initResponseRegex.exec(response)) {
- return new InitSummary(bare, path, false, result[1]);
- }
- if (result = reInitResponseRegex.exec(response)) {
- return new InitSummary(bare, path, 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, path, /^re/i.test(response), gitDir);
-}
-var InitSummary, initResponseRegex, reInitResponseRegex;
-var init_InitSummary = __esm({
- "src/lib/responses/InitSummary.ts"() {
- InitSummary = class {
- constructor(bare, path, existing, gitDir) {
- this.bare = bare;
- this.path = path;
- this.existing = existing;
- this.gitDir = gitDir;
- }
- };
- initResponseRegex = /^Init.+ repository in (.+)$/;
- reInitResponseRegex = /^Rein.+ in (.+)$/;
- }
-});
-
-// src/lib/tasks/init.ts
-function hasBareCommand(command) {
- return command.includes(bareCommand);
-}
-function initTask(bare = false, path, customArgs) {
- const commands = ["init", ...customArgs];
- if (bare && !hasBareCommand(commands)) {
- commands.splice(1, 0, bareCommand);
- }
- return {
- commands,
- format: "utf-8",
- parser(text) {
- return parseInit(commands.includes("--bare"), path, text);
- }
- };
-}
-var bareCommand;
-var init_init = __esm({
- "src/lib/tasks/init.ts"() {
- init_InitSummary();
- bareCommand = "--bare";
- }
-});
-
-// src/lib/responses/DiffSummary.ts
-var DiffSummary;
-var init_DiffSummary = __esm({
- "src/lib/responses/DiffSummary.ts"() {
- DiffSummary = class {
- constructor() {
- this.changed = 0;
- this.deletions = 0;
- this.insertions = 0;
- this.files = [];
- }
- };
- }
-});
-
-// src/lib/parsers/parse-diff-summary.ts
-function parseDiffResult(stdOut) {
- const lines = stdOut.trim().split("\n");
- const status = new DiffSummary();
- readSummaryLine(status, lines.pop());
- for (let i = 0, max = lines.length; i < max; i++) {
- const line = lines[i];
- textFileChange(line, status) || binaryFileChange(line, status);
- }
- return status;
-}
-function readSummaryLine(status, summary) {
- (summary || "").trim().split(", ").forEach(function(text) {
- const summary2 = /(\d+)\s([a-z]+)/.exec(text);
- 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);
-}
-function textFileChange(input, { files }) {
- const line = input.trim().match(/^(.+)\s+\|\s+(\d+)(\s+[+\-]+)?$/);
- if (line) {
- var alterations = (line[3] || "").trim();
- files.push({
- file: line[1].trim(),
- changes: parseInt(line[2], 10),
- insertions: alterations.replace(/-/g, "").length,
- deletions: alterations.replace(/\+/g, "").length,
- binary: false
- });
- return true;
- }
- return false;
-}
-function binaryFileChange(input, { files }) {
- const line = input.match(/^(.+) \|\s+Bin ([0-9.]+) -> ([0-9.]+) ([a-z]+)$/);
- if (line) {
- files.push({
- file: line[1].trim(),
- before: +line[2],
- after: +line[3],
- binary: true
- });
- return true;
- }
- return false;
-}
-var statusUpdate;
-var init_parse_diff_summary = __esm({
- "src/lib/parsers/parse-diff-summary.ts"() {
- init_DiffSummary();
- statusUpdate = {
- file(status, value) {
- status.changed = value;
- },
- deletion(status, value) {
- status.deletions = value;
- },
- insertion(status, value) {
- status.insertions = value;
- }
- };
- }
-});
-
-// src/lib/parsers/parse-list-log-summary.ts
-function lineBuilder(tokens, fields) {
- return fields.reduce((line, field, index) => {
- line[field] = tokens[index] || "";
- return line;
- }, /* @__PURE__ */ Object.create({ diff: null }));
-}
-function createListLogSummaryParser(splitter = SPLITTER, fields = defaultFieldNames) {
- return function(stdOut) {
- const all = toLinesWithContent(stdOut, true, START_BOUNDARY).map(function(item) {
- const lineDetail = item.trim().split(COMMIT_BOUNDARY);
- const listLogLine = lineBuilder(lineDetail[0].trim().split(splitter), fields);
- if (lineDetail.length > 1 && !!lineDetail[1].trim()) {
- listLogLine.diff = parseDiffResult(lineDetail[1]);
- }
- return listLogLine;
- });
- return {
- all,
- latest: all.length && all[0] || null,
- total: all.length
- };
- };
-}
-var START_BOUNDARY, COMMIT_BOUNDARY, SPLITTER, defaultFieldNames;
-var init_parse_list_log_summary = __esm({
- "src/lib/parsers/parse-list-log-summary.ts"() {
- init_utils();
- init_parse_diff_summary();
- START_BOUNDARY = "\xF2\xF2\xF2\xF2\xF2\xF2 ";
- COMMIT_BOUNDARY = " \xF2\xF2";
- SPLITTER = " \xF2 ";
- defaultFieldNames = ["hash", "date", "message", "refs", "author_name", "author_email"];
- }
-});
-
-// src/lib/tasks/log.ts
-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 = __spreadValues({}, input);
- Object.keys(input).forEach((key) => {
- if (key in excludeOptions) {
- delete output[key];
- }
- });
- return output;
-}
-function parseLogOptions(opt = {}, customArgs = []) {
- const splitter = opt.splitter || 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:${START_BOUNDARY}${formatStr}${COMMIT_BOUNDARY}`,
- ...customArgs
- ];
- const maxCount = opt.n || opt["max-count"] || opt.maxCount;
- if (maxCount) {
- command.push(`--max-count=${maxCount}`);
- }
- if (opt.from && opt.to) {
- const rangeOperator = opt.symmetric !== false ? "..." : "..";
- suffix.push(`${opt.from}${rangeOperator}${opt.to}`);
- }
- if (opt.file) {
- suffix.push("--follow", opt.file);
- }
- appendTaskOptions(userOptions(opt), command);
- return {
- fields,
- splitter,
- commands: [
- ...command,
- ...suffix
- ]
- };
-}
-function logTask(splitter, fields, customArgs) {
- return {
- commands: ["log", ...customArgs],
- format: "utf-8",
- parser: createListLogSummaryParser(splitter, fields)
- };
-}
-function log_default() {
- return {
- log(...rest) {
- const next = trailingFunctionArgument(arguments);
- const task = rejectDeprecatedSignatures(...rest) || createLogTask(parseLogOptions(trailingOptionsArgument(arguments), filterType(arguments[0], filterArray)));
- return this._runTask(task, next);
- }
- };
- function createLogTask(options) {
- return logTask(options.splitter, options.fields, options.commands);
- }
- function rejectDeprecatedSignatures(from, to) {
- return filterString(from) && filterString(to) && configurationErrorTask(`git.log(string, string) should be replaced with git.log({ from: string, to: string })`);
- }
-}
-var excludeOptions;
-var init_log = __esm({
- "src/lib/tasks/log.ts"() {
- init_parse_list_log_summary();
- init_utils();
- init_task();
- excludeOptions = /* @__PURE__ */ ((excludeOptions2) => {
- excludeOptions2[excludeOptions2["--pretty"] = 0] = "--pretty";
- excludeOptions2[excludeOptions2["max-count"] = 1] = "max-count";
- excludeOptions2[excludeOptions2["maxCount"] = 2] = "maxCount";
- excludeOptions2[excludeOptions2["n"] = 3] = "n";
- excludeOptions2[excludeOptions2["file"] = 4] = "file";
- excludeOptions2[excludeOptions2["format"] = 5] = "format";
- excludeOptions2[excludeOptions2["from"] = 6] = "from";
- excludeOptions2[excludeOptions2["to"] = 7] = "to";
- excludeOptions2[excludeOptions2["splitter"] = 8] = "splitter";
- excludeOptions2[excludeOptions2["symmetric"] = 9] = "symmetric";
- excludeOptions2[excludeOptions2["mailMap"] = 10] = "mailMap";
- excludeOptions2[excludeOptions2["multiLine"] = 11] = "multiLine";
- excludeOptions2[excludeOptions2["strictDate"] = 12] = "strictDate";
- return excludeOptions2;
- })(excludeOptions || {});
- }
-});
-
-// src/lib/responses/MergeSummary.ts
-var MergeSummaryConflict, MergeSummaryDetail;
-var init_MergeSummary = __esm({
- "src/lib/responses/MergeSummary.ts"() {
- MergeSummaryConflict = class {
- constructor(reason, file = null, meta) {
- this.reason = reason;
- this.file = file;
- this.meta = meta;
- }
- toString() {
- return `${this.file}:${this.reason}`;
- }
- };
- MergeSummaryDetail = class {
- constructor() {
- this.conflicts = [];
- this.merges = [];
- this.result = "success";
- }
- get failed() {
- return this.conflicts.length > 0;
- }
- get reason() {
- return this.result;
- }
- toString() {
- if (this.conflicts.length) {
- return `CONFLICTS: ${this.conflicts.join(", ")}`;
- }
- return "OK";
- }
- };
- }
-});
-
-// src/lib/responses/PullSummary.ts
-var PullSummary, PullFailedSummary;
-var init_PullSummary = __esm({
- "src/lib/responses/PullSummary.ts"() {
- PullSummary = class {
- constructor() {
- this.remoteMessages = {
- all: []
- };
- this.created = [];
- this.deleted = [];
- this.files = [];
- this.deletions = {};
- this.insertions = {};
- this.summary = {
- changes: 0,
- deletions: 0,
- insertions: 0
- };
- }
- };
- PullFailedSummary = class {
- constructor() {
- this.remote = "";
- this.hash = {
- local: "",
- remote: ""
- };
- this.branch = {
- local: "",
- remote: ""
- };
- this.message = "";
- }
- toString() {
- return this.message;
- }
- };
- }
-});
-
-// src/lib/parsers/parse-remote-objects.ts
-function objectEnumerationResult(remoteMessages) {
- return remoteMessages.objects = remoteMessages.objects || {
- compressing: 0,
- counting: 0,
- enumerating: 0,
- packReused: 0,
- reused: { count: 0, delta: 0 },
- total: { count: 0, delta: 0 }
- };
-}
-function asObjectCount(source) {
- const count = /^\s*(\d+)/.exec(source);
- const delta = /delta (\d+)/i.exec(source);
- return {
- count: asNumber(count && count[1] || "0"),
- delta: asNumber(delta && delta[1] || "0")
- };
-}
-var remoteMessagesObjectParsers;
-var init_parse_remote_objects = __esm({
- "src/lib/parsers/parse-remote-objects.ts"() {
- init_utils();
- remoteMessagesObjectParsers = [
- new RemoteLineParser(/^remote:\s*(enumerating|counting|compressing) objects: (\d+),/i, (result, [action, count]) => {
- const key = action.toLowerCase();
- const enumeration = objectEnumerationResult(result.remoteMessages);
- Object.assign(enumeration, { [key]: asNumber(count) });
- }),
- new 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]: asNumber(count) });
- }),
- new RemoteLineParser(/total ([^,]+), reused ([^,]+), pack-reused (\d+)/i, (result, [total, reused, packReused]) => {
- const objects = objectEnumerationResult(result.remoteMessages);
- objects.total = asObjectCount(total);
- objects.reused = asObjectCount(reused);
- objects.packReused = asNumber(packReused);
- })
- ];
- }
-});
-
-// src/lib/parsers/parse-remote-messages.ts
-function parseRemoteMessages(_stdOut, stdErr) {
- return parseStringResponse({ remoteMessages: new RemoteMessageSummary() }, parsers, stdErr);
-}
-var parsers, RemoteMessageSummary;
-var init_parse_remote_messages = __esm({
- "src/lib/parsers/parse-remote-messages.ts"() {
- init_utils();
- init_parse_remote_objects();
- parsers = [
- new RemoteLineParser(/^remote:\s*(.+)$/, (result, [text]) => {
- result.remoteMessages.all.push(text.trim());
- return false;
- }),
- ...remoteMessagesObjectParsers,
- new RemoteLineParser([/create a (?:pull|merge) request/i, /\s(https?:\/\/\S+)$/], (result, [pullRequestUrl]) => {
- result.remoteMessages.pullRequestUrl = pullRequestUrl;
- }),
- new RemoteLineParser([/found (\d+) vulnerabilities.+\(([^)]+)\)/i, /\s(https?:\/\/\S+)$/], (result, [count, summary, url]) => {
- result.remoteMessages.vulnerabilities = {
- count: asNumber(count),
- summary,
- url
- };
- })
- ];
- RemoteMessageSummary = class {
- constructor() {
- this.all = [];
- }
- };
- }
-});
-
-// src/lib/parsers/parse-pull.ts
-function parsePullErrorResult(stdOut, stdErr) {
- const pullError = parseStringResponse(new PullFailedSummary(), errorParsers, stdOut, stdErr);
- return pullError.message && pullError;
-}
-var FILE_UPDATE_REGEX, SUMMARY_REGEX, ACTION_REGEX, parsers2, errorParsers, parsePullDetail, parsePullResult;
-var init_parse_pull = __esm({
- "src/lib/parsers/parse-pull.ts"() {
- init_PullSummary();
- init_utils();
- init_parse_remote_messages();
- FILE_UPDATE_REGEX = /^\s*(.+?)\s+\|\s+\d+\s*(\+*)(-*)/;
- SUMMARY_REGEX = /(\d+)\D+((\d+)\D+\(\+\))?(\D+(\d+)\D+\(-\))?/;
- ACTION_REGEX = /^(create|delete) mode \d+ (.+)/;
- parsers2 = [
- new LineParser(FILE_UPDATE_REGEX, (result, [file, insertions, deletions]) => {
- result.files.push(file);
- if (insertions) {
- result.insertions[file] = insertions.length;
- }
- if (deletions) {
- result.deletions[file] = deletions.length;
- }
- }),
- new LineParser(SUMMARY_REGEX, (result, [changes, , insertions, , deletions]) => {
- if (insertions !== void 0 || deletions !== void 0) {
- result.summary.changes = +changes || 0;
- result.summary.insertions = +insertions || 0;
- result.summary.deletions = +deletions || 0;
- return true;
- }
- return false;
- }),
- new LineParser(ACTION_REGEX, (result, [action, file]) => {
- append(result.files, file);
- append(action === "create" ? result.created : result.deleted, file);
- })
- ];
- errorParsers = [
- new LineParser(/^from\s(.+)$/i, (result, [remote]) => void (result.remote = remote)),
- new LineParser(/^fatal:\s(.+)$/, (result, [message]) => void (result.message = message)),
- new LineParser(/([a-z0-9]+)\.\.([a-z0-9]+)\s+(\S+)\s+->\s+(\S+)$/, (result, [hashLocal, hashRemote, branchLocal, branchRemote]) => {
- result.branch.local = branchLocal;
- result.hash.local = hashLocal;
- result.branch.remote = branchRemote;
- result.hash.remote = hashRemote;
- })
- ];
- parsePullDetail = (stdOut, stdErr) => {
- return parseStringResponse(new PullSummary(), parsers2, stdOut, stdErr);
- };
- parsePullResult = (stdOut, stdErr) => {
- return Object.assign(new PullSummary(), parsePullDetail(stdOut, stdErr), parseRemoteMessages(stdOut, stdErr));
- };
- }
-});
-
-// src/lib/parsers/parse-merge.ts
-var parsers3, parseMergeResult, parseMergeDetail;
-var init_parse_merge = __esm({
- "src/lib/parsers/parse-merge.ts"() {
- init_MergeSummary();
- init_utils();
- init_parse_pull();
- parsers3 = [
- new LineParser(/^Auto-merging\s+(.+)$/, (summary, [autoMerge]) => {
- summary.merges.push(autoMerge);
- }),
- new LineParser(/^CONFLICT\s+\((.+)\): Merge conflict in (.+)$/, (summary, [reason, file]) => {
- summary.conflicts.push(new MergeSummaryConflict(reason, file));
- }),
- new LineParser(/^CONFLICT\s+\((.+\/delete)\): (.+) deleted in (.+) and/, (summary, [reason, file, deleteRef]) => {
- summary.conflicts.push(new MergeSummaryConflict(reason, file, { deleteRef }));
- }),
- new LineParser(/^CONFLICT\s+\((.+)\):/, (summary, [reason]) => {
- summary.conflicts.push(new MergeSummaryConflict(reason, null));
- }),
- new LineParser(/^Automatic merge failed;\s+(.+)$/, (summary, [result]) => {
- summary.result = result;
- })
- ];
- parseMergeResult = (stdOut, stdErr) => {
- return Object.assign(parseMergeDetail(stdOut, stdErr), parsePullResult(stdOut, stdErr));
- };
- parseMergeDetail = (stdOut) => {
- return parseStringResponse(new MergeSummaryDetail(), parsers3, stdOut);
- };
- }
-});
-
-// src/lib/tasks/merge.ts
-function mergeTask(customArgs) {
- if (!customArgs.length) {
- return configurationErrorTask("Git.merge requires at least one option");
- }
- return {
- commands: ["merge", ...customArgs],
- format: "utf-8",
- parser(stdOut, stdErr) {
- const merge = parseMergeResult(stdOut, stdErr);
- if (merge.failed) {
- throw new GitResponseError(merge);
- }
- return merge;
- }
- };
-}
-var init_merge = __esm({
- "src/lib/tasks/merge.ts"() {
- init_git_response_error();
- init_parse_merge();
- init_task();
- }
-});
-
-// src/lib/parsers/parse-push.ts
-function pushResultPushedItem(local, remote, status) {
- const deleted = status.includes("deleted");
- const tag = status.includes("tag") || /^refs\/tags/.test(local);
- const alreadyUpdated = !status.includes("new");
- return {
- deleted,
- tag,
- branch: !tag,
- new: !alreadyUpdated,
- alreadyUpdated,
- local,
- remote
- };
-}
-var parsers4, parsePushResult, parsePushDetail;
-var init_parse_push = __esm({
- "src/lib/parsers/parse-push.ts"() {
- init_utils();
- init_parse_remote_messages();
- parsers4 = [
- new LineParser(/^Pushing to (.+)$/, (result, [repo]) => {
- result.repo = repo;
- }),
- new LineParser(/^updating local tracking ref '(.+)'/, (result, [local]) => {
- result.ref = __spreadProps(__spreadValues({}, result.ref || {}), {
- local
- });
- }),
- new LineParser(/^[*-=]\s+([^:]+):(\S+)\s+\[(.+)]$/, (result, [local, remote, type]) => {
- result.pushed.push(pushResultPushedItem(local, remote, type));
- }),
- new LineParser(/^Branch '([^']+)' set up to track remote branch '([^']+)' from '([^']+)'/, (result, [local, remote, remoteName]) => {
- result.branch = __spreadProps(__spreadValues({}, result.branch || {}), {
- local,
- remote,
- remoteName
- });
- }),
- new LineParser(/^([^:]+):(\S+)\s+([a-z0-9]+)\.\.([a-z0-9]+)$/, (result, [local, remote, from, to]) => {
- result.update = {
- head: {
- local,
- remote
- },
- hash: {
- from,
- to
- }
- };
- })
- ];
- parsePushResult = (stdOut, stdErr) => {
- const pushDetail = parsePushDetail(stdOut, stdErr);
- const responseDetail = parseRemoteMessages(stdOut, stdErr);
- return __spreadValues(__spreadValues({}, pushDetail), responseDetail);
- };
- parsePushDetail = (stdOut, stdErr) => {
- return parseStringResponse({ pushed: [] }, parsers4, stdOut, stdErr);
- };
- }
-});
-
-// src/lib/tasks/push.ts
-var push_exports = {};
-__export(push_exports, {
- pushTagsTask: () => pushTagsTask,
- pushTask: () => pushTask
-});
-function pushTagsTask(ref = {}, customArgs) {
- append(customArgs, "--tags");
- return pushTask(ref, customArgs);
-}
-function pushTask(ref = {}, customArgs) {
- const commands = ["push", ...customArgs];
- if (ref.branch) {
- commands.splice(1, 0, ref.branch);
- }
- if (ref.remote) {
- commands.splice(1, 0, ref.remote);
- }
- remove(commands, "-v");
- append(commands, "--verbose");
- append(commands, "--porcelain");
- return {
- commands,
- format: "utf-8",
- parser: parsePushResult
- };
-}
-var init_push = __esm({
- "src/lib/tasks/push.ts"() {
- init_parse_push();
- init_utils();
- }
-});
-
-// src/lib/responses/FileStatusSummary.ts
-var fromPathRegex, FileStatusSummary;
-var init_FileStatusSummary = __esm({
- "src/lib/responses/FileStatusSummary.ts"() {
- fromPathRegex = /^(.+) -> (.+)$/;
- FileStatusSummary = class {
- constructor(path, index, working_dir) {
- this.path = path;
- this.index = index;
- this.working_dir = working_dir;
- if (index + working_dir === "R") {
- const detail = fromPathRegex.exec(path) || [null, path, path];
- this.from = detail[1] || "";
- this.path = detail[2] || "";
- }
- }
- };
- }
-});
-
-// src/lib/responses/StatusSummary.ts
-function renamedFile(line) {
- const detail = /^(.+) -> (.+)$/.exec(line);
- if (!detail) {
- return {
- from: line,
- to: line
- };
- }
- return {
- from: String(detail[1]),
- to: String(detail[2])
- };
-}
-function parser2(indexX, indexY, handler) {
- return [`${indexX}${indexY}`, handler];
-}
-function conflicts(indexX, ...indexY) {
- return indexY.map((y) => parser2(indexX, y, (result, file) => append(result.conflicted, file)));
-}
-function splitLine(result, lineStr) {
- const trimmed2 = lineStr.trim();
- switch (" ") {
- case trimmed2.charAt(2):
- return data(trimmed2.charAt(0), trimmed2.charAt(1), trimmed2.substr(3));
- case trimmed2.charAt(1):
- return data(" " /* NONE */, trimmed2.charAt(0), trimmed2.substr(2));
- default:
- return;
- }
- function data(index, workingDir, path) {
- const raw = `${index}${workingDir}`;
- const handler = parsers5.get(raw);
- if (handler) {
- handler(result, path);
- }
- if (raw !== "##" && raw !== "!!") {
- result.files.push(new FileStatusSummary(path, index, workingDir));
- }
- }
-}
-var StatusSummary, parsers5, parseStatusSummary;
-var init_StatusSummary = __esm({
- "src/lib/responses/StatusSummary.ts"() {
- init_utils();
- init_FileStatusSummary();
- StatusSummary = class {
- constructor() {
- this.not_added = [];
- this.conflicted = [];
- this.created = [];
- this.deleted = [];
- this.ignored = void 0;
- this.modified = [];
- this.renamed = [];
- this.files = [];
- this.staged = [];
- this.ahead = 0;
- this.behind = 0;
- this.current = null;
- this.tracking = null;
- this.detached = false;
- }
- isClean() {
- return !this.files.length;
- }
- };
- parsers5 = new Map([
- parser2(" " /* NONE */, "A" /* ADDED */, (result, file) => append(result.created, file)),
- parser2(" " /* NONE */, "D" /* DELETED */, (result, file) => append(result.deleted, file)),
- parser2(" " /* NONE */, "M" /* MODIFIED */, (result, file) => append(result.modified, file)),
- parser2("A" /* ADDED */, " " /* NONE */, (result, file) => append(result.created, file) && append(result.staged, file)),
- parser2("A" /* ADDED */, "M" /* MODIFIED */, (result, file) => append(result.created, file) && append(result.staged, file) && append(result.modified, file)),
- parser2("D" /* DELETED */, " " /* NONE */, (result, file) => append(result.deleted, file) && append(result.staged, file)),
- parser2("M" /* MODIFIED */, " " /* NONE */, (result, file) => append(result.modified, file) && append(result.staged, file)),
- parser2("M" /* MODIFIED */, "M" /* MODIFIED */, (result, file) => append(result.modified, file) && append(result.staged, file)),
- parser2("R" /* RENAMED */, " " /* NONE */, (result, file) => {
- append(result.renamed, renamedFile(file));
- }),
- parser2("R" /* RENAMED */, "M" /* MODIFIED */, (result, file) => {
- const renamed = renamedFile(file);
- append(result.renamed, renamed);
- append(result.modified, renamed.to);
- }),
- parser2("!" /* IGNORED */, "!" /* IGNORED */, (_result, _file) => {
- append(_result.ignored = _result.ignored || [], _file);
- }),
- parser2("?" /* UNTRACKED */, "?" /* UNTRACKED */, (result, file) => append(result.not_added, file)),
- ...conflicts("A" /* ADDED */, "A" /* ADDED */, "U" /* UNMERGED */),
- ...conflicts("D" /* DELETED */, "D" /* DELETED */, "U" /* UNMERGED */),
- ...conflicts("U" /* UNMERGED */, "A" /* ADDED */, "D" /* DELETED */, "U" /* 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);
- }]
- ]);
- parseStatusSummary = function(text) {
- const lines = text.trim().split("\n");
- const status = new StatusSummary();
- for (let i = 0, l = lines.length; i < l; i++) {
- splitLine(status, lines[i]);
- }
- return status;
- };
- }
-});
-
-// src/lib/tasks/status.ts
-function statusTask(customArgs) {
- return {
- format: "utf-8",
- commands: ["status", "--porcelain", "-b", "-u", ...customArgs],
- parser(text) {
- return parseStatusSummary(text);
- }
- };
-}
-var init_status = __esm({
- "src/lib/tasks/status.ts"() {
- init_StatusSummary();
- }
-});
-
-// src/lib/simple-git-api.ts
-var simple_git_api_exports = {};
-__export(simple_git_api_exports, {
- SimpleGitApi: () => SimpleGitApi
-});
-var SimpleGitApi;
-var init_simple_git_api = __esm({
- "src/lib/simple-git-api.ts"() {
- init_task_callback();
- init_change_working_directory();
- init_config();
- init_grep();
- init_hash_object();
- init_init();
- init_log();
- init_merge();
- init_push();
- init_status();
- init_task();
- init_utils();
- SimpleGitApi = class {
- constructor(_executor) {
- this._executor = _executor;
- }
- _runTask(task, then) {
- const chain = this._executor.chain();
- const promise = chain.push(task);
- if (then) {
- taskCallback(task, promise, then);
- }
- return Object.create(this, {
- then: { value: promise.then.bind(promise) },
- catch: { value: promise.catch.bind(promise) },
- _executor: { value: chain }
- });
- }
- add(files) {
- return this._runTask(straightThroughStringTask(["add", ...asArray(files)]), trailingFunctionArgument(arguments));
- }
- cwd(directory) {
- const next = trailingFunctionArgument(arguments);
- if (typeof directory === "string") {
- return this._runTask(changeWorkingDirectoryTask(directory, this._executor), next);
- }
- if (typeof (directory == null ? void 0 : directory.path) === "string") {
- return this._runTask(changeWorkingDirectoryTask(directory.path, directory.root && this._executor || void 0), next);
- }
- return this._runTask(configurationErrorTask("Git.cwd: workingDirectory must be supplied as a string"), next);
- }
- hashObject(path, write) {
- return this._runTask(hashObjectTask(path, write === true), trailingFunctionArgument(arguments));
- }
- init(bare) {
- return this._runTask(initTask(bare === true, this._executor.cwd, getTrailingOptions(arguments)), trailingFunctionArgument(arguments));
- }
- merge() {
- return this._runTask(mergeTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments));
- }
- mergeFromTo(remote, branch) {
- if (!(filterString(remote) && filterString(branch))) {
- return this._runTask(configurationErrorTask(`Git.mergeFromTo requires that the 'remote' and 'branch' arguments are supplied as strings`));
- }
- return this._runTask(mergeTask([remote, branch, ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments, false));
- }
- outputHandler(handler) {
- this._executor.outputHandler = handler;
- return this;
- }
- push() {
- const task = pushTask({
- remote: filterType(arguments[0], filterString),
- branch: filterType(arguments[1], filterString)
- }, getTrailingOptions(arguments));
- return this._runTask(task, trailingFunctionArgument(arguments));
- }
- stash() {
- return this._runTask(straightThroughStringTask(["stash", ...getTrailingOptions(arguments)]), trailingFunctionArgument(arguments));
- }
- status() {
- return this._runTask(statusTask(getTrailingOptions(arguments)), trailingFunctionArgument(arguments));
- }
- };
- Object.assign(SimpleGitApi.prototype, config_default(), grep_default(), log_default());
- }
-});
-
-// src/lib/runners/scheduler.ts
-var scheduler_exports = {};
-__export(scheduler_exports, {
- Scheduler: () => Scheduler
-});
-import { createDeferred } from "@kwsites/promise-deferred";
-var createScheduledTask, Scheduler;
-var init_scheduler = __esm({
- "src/lib/runners/scheduler.ts"() {
- init_utils();
- init_git_logger();
- createScheduledTask = (() => {
- let id = 0;
- return () => {
- id++;
- const { promise, done } = createDeferred();
- return {
- promise,
- done,
- id
- };
- };
- })();
- Scheduler = class {
- constructor(concurrency = 2) {
- this.concurrency = concurrency;
- this.logger = createLogger("", "scheduler");
- this.pending = [];
- this.running = [];
- this.logger(`Constructed, concurrency=%s`, concurrency);
- }
- schedule() {
- if (!this.pending.length || this.running.length >= this.concurrency) {
- this.logger(`Schedule attempt ignored, pending=%s running=%s concurrency=%s`, this.pending.length, this.running.length, this.concurrency);
- return;
- }
- const task = append(this.running, this.pending.shift());
- this.logger(`Attempting id=%s`, task.id);
- task.done(() => {
- this.logger(`Completing id=`, task.id);
- remove(this.running, task);
- this.schedule();
- });
- }
- next() {
- const { promise, id } = append(this.pending, createScheduledTask());
- this.logger(`Scheduling id=%s`, id);
- this.schedule();
- return promise;
- }
- };
- }
-});
-
-// src/lib/tasks/apply-patch.ts
-var apply_patch_exports = {};
-__export(apply_patch_exports, {
- applyPatchTask: () => applyPatchTask
-});
-function applyPatchTask(patches, customArgs) {
- return straightThroughStringTask(["apply", ...customArgs, ...patches]);
-}
-var init_apply_patch = __esm({
- "src/lib/tasks/apply-patch.ts"() {
- init_task();
- }
-});
-
-// src/lib/responses/BranchDeleteSummary.ts
-function branchDeletionSuccess(branch, hash) {
- return {
- branch,
- hash,
- success: true
- };
-}
-function branchDeletionFailure(branch) {
- return {
- branch,
- hash: null,
- success: false
- };
-}
-var BranchDeletionBatch;
-var init_BranchDeleteSummary = __esm({
- "src/lib/responses/BranchDeleteSummary.ts"() {
- BranchDeletionBatch = class {
- constructor() {
- this.all = [];
- this.branches = {};
- this.errors = [];
- }
- get success() {
- return !this.errors.length;
- }
- };
- }
-});
-
-// src/lib/parsers/parse-branch-delete.ts
-function hasBranchDeletionError(data, processExitCode) {
- return processExitCode === 1 /* ERROR */ && deleteErrorRegex.test(data);
-}
-var deleteSuccessRegex, deleteErrorRegex, parsers6, parseBranchDeletions;
-var init_parse_branch_delete = __esm({
- "src/lib/parsers/parse-branch-delete.ts"() {
- init_BranchDeleteSummary();
- init_utils();
- deleteSuccessRegex = /(\S+)\s+\(\S+\s([^)]+)\)/;
- deleteErrorRegex = /^error[^']+'([^']+)'/m;
- parsers6 = [
- new LineParser(deleteSuccessRegex, (result, [branch, hash]) => {
- const deletion = branchDeletionSuccess(branch, hash);
- result.all.push(deletion);
- result.branches[branch] = deletion;
- }),
- new LineParser(deleteErrorRegex, (result, [branch]) => {
- const deletion = branchDeletionFailure(branch);
- result.errors.push(deletion);
- result.all.push(deletion);
- result.branches[branch] = deletion;
- })
- ];
- parseBranchDeletions = (stdOut, stdErr) => {
- return parseStringResponse(new BranchDeletionBatch(), parsers6, stdOut, stdErr);
- };
- }
-});
-
-// src/lib/responses/BranchSummary.ts
-var BranchSummaryResult;
-var init_BranchSummary = __esm({
- "src/lib/responses/BranchSummary.ts"() {
- BranchSummaryResult = class {
- constructor() {
- this.all = [];
- this.branches = {};
- this.current = "";
- this.detached = false;
- }
- push(current, detached, name, commit, label) {
- if (current) {
- this.detached = detached;
- this.current = name;
- }
- this.all.push(name);
- this.branches[name] = {
- current,
- name,
- commit,
- label
- };
- }
- };
- }
-});
-
-// src/lib/parsers/parse-branch.ts
-function parseBranchSummary(stdOut) {
- return parseStringResponse(new BranchSummaryResult(), parsers7, stdOut);
-}
-var parsers7;
-var init_parse_branch = __esm({
- "src/lib/parsers/parse-branch.ts"() {
- init_BranchSummary();
- init_utils();
- parsers7 = [
- new LineParser(/^(\*\s)?\((?:HEAD )?detached (?:from|at) (\S+)\)\s+([a-z0-9]+)\s(.*)$/, (result, [current, name, commit, label]) => {
- result.push(!!current, true, name, commit, label);
- }),
- new LineParser(/^(\*\s)?(\S+)\s+([a-z0-9]+)\s?(.*)$/s, (result, [current, name, commit, label]) => {
- result.push(!!current, false, name, commit, label);
- })
- ];
- }
-});
-
-// src/lib/tasks/branch.ts
-var branch_exports = {};
-__export(branch_exports, {
- branchLocalTask: () => branchLocalTask,
- branchTask: () => branchTask,
- containsDeleteBranchCommand: () => containsDeleteBranchCommand,
- deleteBranchTask: () => deleteBranchTask,
- deleteBranchesTask: () => deleteBranchesTask
-});
-function containsDeleteBranchCommand(commands) {
- const deleteCommands = ["-d", "-D", "--delete"];
- return commands.some((command) => deleteCommands.includes(command));
-}
-function branchTask(customArgs) {
- const isDelete = containsDeleteBranchCommand(customArgs);
- const commands = ["branch", ...customArgs];
- if (commands.length === 1) {
- commands.push("-a");
- }
- if (!commands.includes("-v")) {
- commands.splice(1, 0, "-v");
- }
- return {
- format: "utf-8",
- commands,
- parser(stdOut, stdErr) {
- if (isDelete) {
- return parseBranchDeletions(stdOut, stdErr).all[0];
- }
- return parseBranchSummary(stdOut);
- }
- };
-}
-function branchLocalTask() {
- const parser3 = parseBranchSummary;
- return {
- format: "utf-8",
- commands: ["branch", "-v"],
- parser: parser3
- };
-}
-function deleteBranchesTask(branches, forceDelete = false) {
- return {
- format: "utf-8",
- commands: ["branch", "-v", forceDelete ? "-D" : "-d", ...branches],
- parser(stdOut, stdErr) {
- return parseBranchDeletions(stdOut, stdErr);
- },
- onError({ exitCode, stdOut }, error, done, fail) {
- if (!hasBranchDeletionError(String(error), exitCode)) {
- return fail(error);
- }
- done(stdOut);
- }
- };
-}
-function deleteBranchTask(branch, forceDelete = false) {
- const task = {
- format: "utf-8",
- commands: ["branch", "-v", forceDelete ? "-D" : "-d", branch],
- parser(stdOut, stdErr) {
- return parseBranchDeletions(stdOut, stdErr).branches[branch];
- },
- onError({ exitCode, stdErr, stdOut }, error, _, fail) {
- if (!hasBranchDeletionError(String(error), exitCode)) {
- return fail(error);
- }
- throw new GitResponseError(task.parser(bufferToString(stdOut), bufferToString(stdErr)), String(error));
- }
- };
- return task;
-}
-var init_branch = __esm({
- "src/lib/tasks/branch.ts"() {
- init_git_response_error();
- init_parse_branch_delete();
- init_parse_branch();
- init_utils();
- }
-});
-
-// src/lib/responses/CheckIgnore.ts
-var parseCheckIgnore;
-var init_CheckIgnore = __esm({
- "src/lib/responses/CheckIgnore.ts"() {
- parseCheckIgnore = (text) => {
- return text.split(/\n/g).map((line) => line.trim()).filter((file) => !!file);
- };
- }
-});
-
-// src/lib/tasks/check-ignore.ts
-var check_ignore_exports = {};
-__export(check_ignore_exports, {
- checkIgnoreTask: () => checkIgnoreTask
-});
-function checkIgnoreTask(paths) {
- return {
- commands: ["check-ignore", ...paths],
- format: "utf-8",
- parser: parseCheckIgnore
- };
-}
-var init_check_ignore = __esm({
- "src/lib/tasks/check-ignore.ts"() {
- init_CheckIgnore();
- }
-});
-
-// src/lib/tasks/clone.ts
-var clone_exports = {};
-__export(clone_exports, {
- cloneMirrorTask: () => cloneMirrorTask,
- cloneTask: () => cloneTask
-});
-function cloneTask(repo, directory, customArgs) {
- const commands = ["clone", ...customArgs];
- if (typeof repo === "string") {
- commands.push(repo);
- }
- if (typeof directory === "string") {
- commands.push(directory);
- }
- return straightThroughStringTask(commands);
-}
-function cloneMirrorTask(repo, directory, customArgs) {
- append(customArgs, "--mirror");
- return cloneTask(repo, directory, customArgs);
-}
-var init_clone = __esm({
- "src/lib/tasks/clone.ts"() {
- init_task();
- init_utils();
- }
-});
-
-// src/lib/parsers/parse-commit.ts
-function parseCommitResult(stdOut) {
- const result = {
- author: null,
- branch: "",
- commit: "",
- root: false,
- summary: {
- changes: 0,
- insertions: 0,
- deletions: 0
- }
- };
- return parseStringResponse(result, parsers8, stdOut);
-}
-var parsers8;
-var init_parse_commit = __esm({
- "src/lib/parsers/parse-commit.ts"() {
- init_utils();
- parsers8 = [
- new LineParser(/^\[([^\s]+)( \([^)]+\))? ([^\]]+)/, (result, [branch, root, commit]) => {
- result.branch = branch;
- result.commit = commit;
- result.root = !!root;
- }),
- new LineParser(/\s*Author:\s(.+)/i, (result, [author]) => {
- const parts = author.split("<");
- const email = parts.pop();
- if (!email || !email.includes("@")) {
- return;
- }
- result.author = {
- email: email.substr(0, email.length - 1),
- name: parts.join("<").trim()
- };
- }),
- new LineParser(/(\d+)[^,]*(?:,\s*(\d+)[^,]*)(?:,\s*(\d+))/g, (result, [changes, insertions, deletions]) => {
- result.summary.changes = parseInt(changes, 10) || 0;
- result.summary.insertions = parseInt(insertions, 10) || 0;
- result.summary.deletions = parseInt(deletions, 10) || 0;
- }),
- new LineParser(/^(\d+)[^,]*(?:,\s*(\d+)[^(]+\(([+-]))?/, (result, [changes, lines, direction]) => {
- result.summary.changes = parseInt(changes, 10) || 0;
- const count = parseInt(lines, 10) || 0;
- if (direction === "-") {
- result.summary.deletions = count;
- } else if (direction === "+") {
- result.summary.insertions = count;
- }
- })
- ];
- }
-});
-
-// src/lib/tasks/commit.ts
-var commit_exports = {};
-__export(commit_exports, {
- commitTask: () => commitTask
-});
-function commitTask(message, files, customArgs) {
- const commands = ["commit"];
- message.forEach((m) => commands.push("-m", m));
- commands.push(...files, ...customArgs);
- return {
- commands,
- format: "utf-8",
- parser: parseCommitResult
- };
-}
-var init_commit = __esm({
- "src/lib/tasks/commit.ts"() {
- init_parse_commit();
- }
-});
-
-// src/lib/tasks/diff.ts
-var diff_exports = {};
-__export(diff_exports, {
- diffSummaryTask: () => diffSummaryTask
-});
-function diffSummaryTask(customArgs) {
- return {
- commands: ["diff", "--stat=4096", ...customArgs],
- format: "utf-8",
- parser(stdOut) {
- return parseDiffResult(stdOut);
- }
- };
-}
-var init_diff = __esm({
- "src/lib/tasks/diff.ts"() {
- init_parse_diff_summary();
- }
-});
-
-// src/lib/parsers/parse-fetch.ts
-function parseFetchResult(stdOut, stdErr) {
- const result = {
- raw: stdOut,
- remote: null,
- branches: [],
- tags: []
- };
- return parseStringResponse(result, parsers9, stdOut, stdErr);
-}
-var parsers9;
-var init_parse_fetch = __esm({
- "src/lib/parsers/parse-fetch.ts"() {
- init_utils();
- parsers9 = [
- new LineParser(/From (.+)$/, (result, [remote]) => {
- result.remote = remote;
- }),
- new LineParser(/\* \[new branch]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => {
- result.branches.push({
- name,
- tracking
- });
- }),
- new LineParser(/\* \[new tag]\s+(\S+)\s*-> (.+)$/, (result, [name, tracking]) => {
- result.tags.push({
- name,
- tracking
- });
- })
- ];
- }
-});
-
-// src/lib/tasks/fetch.ts
-var fetch_exports = {};
-__export(fetch_exports, {
- fetchTask: () => fetchTask
-});
-function fetchTask(remote, branch, customArgs) {
- const commands = ["fetch", ...customArgs];
- if (remote && branch) {
- commands.push(remote, branch);
- }
- return {
- commands,
- format: "utf-8",
- parser: parseFetchResult
- };
-}
-var init_fetch = __esm({
- "src/lib/tasks/fetch.ts"() {
- init_parse_fetch();
- }
-});
-
-// src/lib/parsers/parse-move.ts
-function parseMoveResult(stdOut) {
- return parseStringResponse({ moves: [] }, parsers10, stdOut);
-}
-var parsers10;
-var init_parse_move = __esm({
- "src/lib/parsers/parse-move.ts"() {
- init_utils();
- parsers10 = [
- new LineParser(/^Renaming (.+) to (.+)$/, (result, [from, to]) => {
- result.moves.push({ from, to });
- })
- ];
- }
-});
-
-// src/lib/tasks/move.ts
-var move_exports = {};
-__export(move_exports, {
- moveTask: () => moveTask
-});
-function moveTask(from, to) {
- return {
- commands: ["mv", "-v", ...asArray(from), to],
- format: "utf-8",
- parser: parseMoveResult
- };
-}
-var init_move = __esm({
- "src/lib/tasks/move.ts"() {
- init_parse_move();
- init_utils();
- }
-});
-
-// src/lib/tasks/pull.ts
-var pull_exports = {};
-__export(pull_exports, {
- pullTask: () => pullTask
-});
-function pullTask(remote, branch, customArgs) {
- const commands = ["pull", ...customArgs];
- if (remote && branch) {
- commands.splice(1, 0, remote, branch);
- }
- return {
- commands,
- format: "utf-8",
- parser(stdOut, stdErr) {
- return parsePullResult(stdOut, stdErr);
- },
- onError(result, _error, _done, fail) {
- const pullError = parsePullErrorResult(bufferToString(result.stdOut), bufferToString(result.stdErr));
- if (pullError) {
- return fail(new GitResponseError(pullError));
- }
- fail(_error);
- }
- };
-}
-var init_pull = __esm({
- "src/lib/tasks/pull.ts"() {
- init_git_response_error();
- init_parse_pull();
- init_utils();
- }
-});
-
-// src/lib/responses/GetRemoteSummary.ts
-function parseGetRemotes(text) {
- const remotes = {};
- forEach(text, ([name]) => remotes[name] = { name });
- return Object.values(remotes);
-}
-function parseGetRemotesVerbose(text) {
- const remotes = {};
- forEach(text, ([name, url, purpose]) => {
- if (!remotes.hasOwnProperty(name)) {
- remotes[name] = {
- name,
- refs: { fetch: "", push: "" }
- };
- }
- if (purpose && url) {
- remotes[name].refs[purpose.replace(/[^a-z]/g, "")] = url;
- }
- });
- return Object.values(remotes);
-}
-function forEach(text, handler) {
- forEachLineWithContent(text, (line) => handler(line.split(/\s+/)));
-}
-var init_GetRemoteSummary = __esm({
- "src/lib/responses/GetRemoteSummary.ts"() {
- init_utils();
- }
-});
-
-// src/lib/tasks/remote.ts
-var remote_exports = {};
-__export(remote_exports, {
- addRemoteTask: () => addRemoteTask,
- getRemotesTask: () => getRemotesTask,
- listRemotesTask: () => listRemotesTask,
- remoteTask: () => remoteTask,
- removeRemoteTask: () => removeRemoteTask
-});
-function addRemoteTask(remoteName, remoteRepo, customArgs = []) {
- return straightThroughStringTask(["remote", "add", ...customArgs, remoteName, remoteRepo]);
-}
-function getRemotesTask(verbose) {
- const commands = ["remote"];
- if (verbose) {
- commands.push("-v");
- }
- return {
- commands,
- format: "utf-8",
- parser: verbose ? parseGetRemotesVerbose : parseGetRemotes
- };
-}
-function listRemotesTask(customArgs = []) {
- const commands = [...customArgs];
- if (commands[0] !== "ls-remote") {
- commands.unshift("ls-remote");
- }
- return straightThroughStringTask(commands);
-}
-function remoteTask(customArgs = []) {
- const commands = [...customArgs];
- if (commands[0] !== "remote") {
- commands.unshift("remote");
- }
- return straightThroughStringTask(commands);
-}
-function removeRemoteTask(remoteName) {
- return straightThroughStringTask(["remote", "remove", remoteName]);
-}
-var init_remote = __esm({
- "src/lib/tasks/remote.ts"() {
- init_GetRemoteSummary();
- init_task();
- }
-});
-
-// src/lib/tasks/stash-list.ts
-var stash_list_exports = {};
-__export(stash_list_exports, {
- stashListTask: () => stashListTask
-});
-function stashListTask(opt = {}, customArgs) {
- const options = parseLogOptions(opt);
- const parser3 = createListLogSummaryParser(options.splitter, options.fields);
- return {
- commands: ["stash", "list", ...options.commands, ...customArgs],
- format: "utf-8",
- parser: parser3
- };
-}
-var init_stash_list = __esm({
- "src/lib/tasks/stash-list.ts"() {
- init_parse_list_log_summary();
- init_log();
- }
-});
-
-// src/lib/tasks/sub-module.ts
-var sub_module_exports = {};
-__export(sub_module_exports, {
- addSubModuleTask: () => addSubModuleTask,
- initSubModuleTask: () => initSubModuleTask,
- subModuleTask: () => subModuleTask,
- updateSubModuleTask: () => updateSubModuleTask
-});
-function addSubModuleTask(repo, path) {
- return subModuleTask(["add", repo, path]);
-}
-function initSubModuleTask(customArgs) {
- return subModuleTask(["init", ...customArgs]);
-}
-function subModuleTask(customArgs) {
- const commands = [...customArgs];
- if (commands[0] !== "submodule") {
- commands.unshift("submodule");
- }
- return straightThroughStringTask(commands);
-}
-function updateSubModuleTask(customArgs) {
- return subModuleTask(["update", ...customArgs]);
-}
-var init_sub_module = __esm({
- "src/lib/tasks/sub-module.ts"() {
- init_task();
- }
-});
-
-// src/lib/responses/TagList.ts
-function singleSorted(a, b) {
- const aIsNum = isNaN(a);
- const bIsNum = isNaN(b);
- if (aIsNum !== bIsNum) {
- return aIsNum ? 1 : -1;
- }
- return aIsNum ? sorted(a, b) : 0;
-}
-function sorted(a, b) {
- return a === b ? 0 : a > b ? 1 : -1;
-}
-function trimmed(input) {
- return input.trim();
-}
-function toNumber(input) {
- if (typeof input === "string") {
- return parseInt(input.replace(/^\D+/g, ""), 10) || 0;
- }
- return 0;
-}
-var TagList, parseTagList;
-var init_TagList = __esm({
- "src/lib/responses/TagList.ts"() {
- TagList = class {
- constructor(all, latest) {
- this.all = all;
- this.latest = latest;
- }
- };
- parseTagList = function(data, customSort = false) {
- const tags = data.split("\n").map(trimmed).filter(Boolean);
- if (!customSort) {
- tags.sort(function(tagA, tagB) {
- const partsA = tagA.split(".");
- const partsB = tagB.split(".");
- if (partsA.length === 1 || partsB.length === 1) {
- return singleSorted(toNumber(partsA[0]), toNumber(partsB[0]));
- }
- for (let i = 0, l = Math.max(partsA.length, partsB.length); i < l; i++) {
- const diff = sorted(toNumber(partsA[i]), toNumber(partsB[i]));
- if (diff) {
- return diff;
- }
- }
- return 0;
- });
- }
- const latest = customSort ? tags[0] : [...tags].reverse().find((tag) => tag.indexOf(".") >= 0);
- return new TagList(tags, latest);
- };
- }
-});
-
-// src/lib/tasks/tag.ts
-var tag_exports = {};
-__export(tag_exports, {
- addAnnotatedTagTask: () => addAnnotatedTagTask,
- addTagTask: () => addTagTask,
- tagListTask: () => tagListTask
-});
-function tagListTask(customArgs = []) {
- const hasCustomSort = customArgs.some((option) => /^--sort=/.test(option));
- return {
- format: "utf-8",
- commands: ["tag", "-l", ...customArgs],
- parser(text) {
- return parseTagList(text, hasCustomSort);
- }
- };
-}
-function addTagTask(name) {
- return {
- format: "utf-8",
- commands: ["tag", name],
- parser() {
- return { name };
- }
- };
-}
-function addAnnotatedTagTask(name, tagMessage) {
- return {
- format: "utf-8",
- commands: ["tag", "-a", "-m", tagMessage, name],
- parser() {
- return { name };
- }
- };
-}
-var init_tag = __esm({
- "src/lib/tasks/tag.ts"() {
- init_TagList();
- }
-});
-
-// src/git.js
-var require_git = __commonJS({
- "src/git.js"(exports, module) {
- var { GitExecutor: GitExecutor2 } = (init_git_executor(), __toCommonJS(git_executor_exports));
- var { SimpleGitApi: SimpleGitApi2 } = (init_simple_git_api(), __toCommonJS(simple_git_api_exports));
- var { Scheduler: Scheduler2 } = (init_scheduler(), __toCommonJS(scheduler_exports));
- var { configurationErrorTask: configurationErrorTask2 } = (init_task(), __toCommonJS(task_exports));
- var {
- asArray: asArray2,
- filterArray: filterArray2,
- filterPrimitives: filterPrimitives2,
- filterString: filterString2,
- filterStringOrStringArray: filterStringOrStringArray2,
- filterType: filterType2,
- getTrailingOptions: getTrailingOptions2,
- trailingFunctionArgument: trailingFunctionArgument2,
- trailingOptionsArgument: trailingOptionsArgument2
- } = (init_utils(), __toCommonJS(utils_exports));
- var { applyPatchTask: applyPatchTask2 } = (init_apply_patch(), __toCommonJS(apply_patch_exports));
- var { branchTask: branchTask2, branchLocalTask: branchLocalTask2, deleteBranchesTask: deleteBranchesTask2, deleteBranchTask: deleteBranchTask2 } = (init_branch(), __toCommonJS(branch_exports));
- var { checkIgnoreTask: checkIgnoreTask2 } = (init_check_ignore(), __toCommonJS(check_ignore_exports));
- var { checkIsRepoTask: checkIsRepoTask2 } = (init_check_is_repo(), __toCommonJS(check_is_repo_exports));
- var { cloneTask: cloneTask2, cloneMirrorTask: cloneMirrorTask2 } = (init_clone(), __toCommonJS(clone_exports));
- var { cleanWithOptionsTask: cleanWithOptionsTask2, isCleanOptionsArray: isCleanOptionsArray2 } = (init_clean(), __toCommonJS(clean_exports));
- var { commitTask: commitTask2 } = (init_commit(), __toCommonJS(commit_exports));
- var { diffSummaryTask: diffSummaryTask2 } = (init_diff(), __toCommonJS(diff_exports));
- var { fetchTask: fetchTask2 } = (init_fetch(), __toCommonJS(fetch_exports));
- var { moveTask: moveTask2 } = (init_move(), __toCommonJS(move_exports));
- var { pullTask: pullTask2 } = (init_pull(), __toCommonJS(pull_exports));
- var { pushTagsTask: pushTagsTask2 } = (init_push(), __toCommonJS(push_exports));
- var { addRemoteTask: addRemoteTask2, getRemotesTask: getRemotesTask2, listRemotesTask: listRemotesTask2, remoteTask: remoteTask2, removeRemoteTask: removeRemoteTask2 } = (init_remote(), __toCommonJS(remote_exports));
- var { getResetMode: getResetMode2, resetTask: resetTask2 } = (init_reset(), __toCommonJS(reset_exports));
- var { stashListTask: stashListTask2 } = (init_stash_list(), __toCommonJS(stash_list_exports));
- var { addSubModuleTask: addSubModuleTask2, initSubModuleTask: initSubModuleTask2, subModuleTask: subModuleTask2, updateSubModuleTask: updateSubModuleTask2 } = (init_sub_module(), __toCommonJS(sub_module_exports));
- var { addAnnotatedTagTask: addAnnotatedTagTask2, addTagTask: addTagTask2, tagListTask: tagListTask2 } = (init_tag(), __toCommonJS(tag_exports));
- var { straightThroughBufferTask: straightThroughBufferTask2, straightThroughStringTask: straightThroughStringTask2 } = (init_task(), __toCommonJS(task_exports));
- function Git2(options, plugins) {
- this._executor = new GitExecutor2(options.binary, options.baseDir, new Scheduler2(options.maxConcurrentProcesses), plugins);
- }
- (Git2.prototype = Object.create(SimpleGitApi2.prototype)).constructor = Git2;
- Git2.prototype.customBinary = function(command) {
- this._executor.binary = command;
- return this;
- };
- Git2.prototype.env = function(name, value) {
- if (arguments.length === 1 && typeof name === "object") {
- this._executor.env = name;
- } else {
- (this._executor.env = this._executor.env || {})[name] = value;
- }
- return this;
- };
- Git2.prototype.stashList = function(options) {
- return this._runTask(stashListTask2(trailingOptionsArgument2(arguments) || {}, filterArray2(options) && options || []), trailingFunctionArgument2(arguments));
- };
- function createCloneTask(api, task, repoPath, localPath) {
- if (typeof repoPath !== "string") {
- return configurationErrorTask2(`git.${api}() requires a string 'repoPath'`);
- }
- return task(repoPath, filterType2(localPath, filterString2), getTrailingOptions2(arguments));
- }
- Git2.prototype.clone = function() {
- return this._runTask(createCloneTask("clone", cloneTask2, ...arguments), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.mirror = function() {
- return this._runTask(createCloneTask("mirror", cloneMirrorTask2, ...arguments), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.mv = function(from, to) {
- return this._runTask(moveTask2(from, to), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.checkoutLatestTag = function(then) {
- var git = this;
- return this.pull(function() {
- git.tags(function(err, tags) {
- git.checkout(tags.latest, then);
- });
- });
- };
- Git2.prototype.commit = function(message, files, options, then) {
- const next = trailingFunctionArgument2(arguments);
- if (!filterStringOrStringArray2(message)) {
- return this._runTask(configurationErrorTask2("git.commit: requires the commit message to be supplied as a string/string[]"), next);
- }
- return this._runTask(commitTask2(asArray2(message), asArray2(filterType2(files, filterStringOrStringArray2, [])), [...filterType2(options, filterArray2, []), ...getTrailingOptions2(arguments, 0, true)]), next);
- };
- Git2.prototype.pull = function(remote, branch, options, then) {
- return this._runTask(pullTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.fetch = function(remote, branch) {
- return this._runTask(fetchTask2(filterType2(remote, filterString2), filterType2(branch, filterString2), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.silent = function(silence) {
- console.warn("simple-git deprecation notice: git.silent: logging should be configured using the `debug` library / `DEBUG` environment variable, this will be an error in version 3");
- return this;
- };
- Git2.prototype.tags = function(options, then) {
- return this._runTask(tagListTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.rebase = function() {
- return this._runTask(straightThroughStringTask2(["rebase", ...getTrailingOptions2(arguments)]), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.reset = function(mode) {
- return this._runTask(resetTask2(getResetMode2(mode), getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.revert = function(commit) {
- const next = trailingFunctionArgument2(arguments);
- if (typeof commit !== "string") {
- return this._runTask(configurationErrorTask2("Commit must be a string"), next);
- }
- return this._runTask(straightThroughStringTask2(["revert", ...getTrailingOptions2(arguments, 0, true), commit]), next);
- };
- Git2.prototype.addTag = function(name) {
- const task = typeof name === "string" ? addTagTask2(name) : configurationErrorTask2("Git.addTag requires a tag name");
- return this._runTask(task, trailingFunctionArgument2(arguments));
- };
- Git2.prototype.addAnnotatedTag = function(tagName, tagMessage) {
- return this._runTask(addAnnotatedTagTask2(tagName, tagMessage), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.checkout = function() {
- const commands = ["checkout", ...getTrailingOptions2(arguments, true)];
- return this._runTask(straightThroughStringTask2(commands), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.checkoutBranch = function(branchName, startPoint, then) {
- return this.checkout(["-b", branchName, startPoint], trailingFunctionArgument2(arguments));
- };
- Git2.prototype.checkoutLocalBranch = function(branchName, then) {
- return this.checkout(["-b", branchName], trailingFunctionArgument2(arguments));
- };
- Git2.prototype.deleteLocalBranch = function(branchName, forceDelete, then) {
- return this._runTask(deleteBranchTask2(branchName, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.deleteLocalBranches = function(branchNames, forceDelete, then) {
- return this._runTask(deleteBranchesTask2(branchNames, typeof forceDelete === "boolean" ? forceDelete : false), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.branch = function(options, then) {
- return this._runTask(branchTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.branchLocal = function(then) {
- return this._runTask(branchLocalTask2(), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.raw = function(commands) {
- const createRestCommands = !Array.isArray(commands);
- const command = [].slice.call(createRestCommands ? arguments : commands, 0);
- for (let i = 0; i < command.length && createRestCommands; i++) {
- if (!filterPrimitives2(command[i])) {
- command.splice(i, command.length - i);
- break;
- }
- }
- command.push(...getTrailingOptions2(arguments, 0, true));
- var next = trailingFunctionArgument2(arguments);
- if (!command.length) {
- return this._runTask(configurationErrorTask2("Raw: must supply one or more command to execute"), next);
- }
- return this._runTask(straightThroughStringTask2(command), next);
- };
- Git2.prototype.submoduleAdd = function(repo, path, then) {
- return this._runTask(addSubModuleTask2(repo, path), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.submoduleUpdate = function(args, then) {
- return this._runTask(updateSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.submoduleInit = function(args, then) {
- return this._runTask(initSubModuleTask2(getTrailingOptions2(arguments, true)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.subModule = function(options, then) {
- return this._runTask(subModuleTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.listRemote = function() {
- return this._runTask(listRemotesTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.addRemote = function(remoteName, remoteRepo, then) {
- return this._runTask(addRemoteTask2(remoteName, remoteRepo, getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.removeRemote = function(remoteName, then) {
- return this._runTask(removeRemoteTask2(remoteName), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.getRemotes = function(verbose, then) {
- return this._runTask(getRemotesTask2(verbose === true), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.remote = function(options, then) {
- return this._runTask(remoteTask2(getTrailingOptions2(arguments)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.tag = function(options, then) {
- const command = getTrailingOptions2(arguments);
- if (command[0] !== "tag") {
- command.unshift("tag");
- }
- return this._runTask(straightThroughStringTask2(command), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.updateServerInfo = function(then) {
- return this._runTask(straightThroughStringTask2(["update-server-info"]), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.pushTags = function(remote, then) {
- const task = pushTagsTask2({ remote: filterType2(remote, filterString2) }, getTrailingOptions2(arguments));
- return this._runTask(task, trailingFunctionArgument2(arguments));
- };
- Git2.prototype.rm = function(files) {
- return this._runTask(straightThroughStringTask2(["rm", "-f", ...asArray2(files)]), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.rmKeepLocal = function(files) {
- return this._runTask(straightThroughStringTask2(["rm", "--cached", ...asArray2(files)]), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.catFile = function(options, then) {
- return this._catFile("utf-8", arguments);
- };
- Git2.prototype.binaryCatFile = function() {
- return this._catFile("buffer", arguments);
- };
- Git2.prototype._catFile = function(format, args) {
- var handler = trailingFunctionArgument2(args);
- var command = ["cat-file"];
- var options = args[0];
- if (typeof options === "string") {
- return this._runTask(configurationErrorTask2("Git.catFile: options must be supplied as an array of strings"), handler);
- }
- if (Array.isArray(options)) {
- command.push.apply(command, options);
- }
- const task = format === "buffer" ? straightThroughBufferTask2(command) : straightThroughStringTask2(command);
- return this._runTask(task, handler);
- };
- Git2.prototype.diff = function(options, then) {
- const task = filterString2(options) ? configurationErrorTask2("git.diff: supplying options as a single string is no longer supported, switch to an array of strings") : straightThroughStringTask2(["diff", ...getTrailingOptions2(arguments)]);
- return this._runTask(task, trailingFunctionArgument2(arguments));
- };
- Git2.prototype.diffSummary = function() {
- return this._runTask(diffSummaryTask2(getTrailingOptions2(arguments, 1)), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.applyPatch = function(patches) {
- const task = !filterStringOrStringArray2(patches) ? configurationErrorTask2(`git.applyPatch requires one or more string patches as the first argument`) : applyPatchTask2(asArray2(patches), getTrailingOptions2([].slice.call(arguments, 1)));
- return this._runTask(task, trailingFunctionArgument2(arguments));
- };
- Git2.prototype.revparse = function() {
- const commands = ["rev-parse", ...getTrailingOptions2(arguments, true)];
- return this._runTask(straightThroughStringTask2(commands, true), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.show = function(options, then) {
- return this._runTask(straightThroughStringTask2(["show", ...getTrailingOptions2(arguments, 1)]), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.clean = function(mode, options, then) {
- const usingCleanOptionsArray = isCleanOptionsArray2(mode);
- const cleanMode = usingCleanOptionsArray && mode.join("") || filterType2(mode, filterString2) || "";
- const customArgs = getTrailingOptions2([].slice.call(arguments, usingCleanOptionsArray ? 1 : 0));
- return this._runTask(cleanWithOptionsTask2(cleanMode, customArgs), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.exec = function(then) {
- const task = {
- commands: [],
- format: "utf-8",
- parser() {
- if (typeof then === "function") {
- then();
- }
- }
- };
- return this._runTask(task);
- };
- Git2.prototype.clearQueue = function() {
- return this;
- };
- Git2.prototype.checkIgnore = function(pathnames, then) {
- return this._runTask(checkIgnoreTask2(asArray2(filterType2(pathnames, filterStringOrStringArray2, []))), trailingFunctionArgument2(arguments));
- };
- Git2.prototype.checkIsRepo = function(checkType, then) {
- return this._runTask(checkIsRepoTask2(filterType2(checkType, filterString2)), trailingFunctionArgument2(arguments));
- };
- module.exports = Git2;
- }
-});
-
-// src/lib/errors/git-construct-error.ts
-init_git_error();
-var GitConstructError = class extends GitError {
- constructor(config, message) {
- super(void 0, message);
- this.config = config;
- }
-};
-
-// src/lib/api.ts
-init_git_error();
-
-// src/lib/errors/git-plugin-error.ts
-init_git_error();
-var GitPluginError = class extends GitError {
- constructor(task, plugin, message) {
- super(task, message);
- this.task = task;
- this.plugin = plugin;
- Object.setPrototypeOf(this, new.target.prototype);
- }
-};
-
-// src/lib/api.ts
-init_git_response_error();
-init_task_configuration_error();
-init_check_is_repo();
-init_clean();
-init_config();
-init_grep();
-init_reset();
-
-// src/lib/plugins/command-config-prefixing-plugin.ts
-init_utils();
-function commandConfigPrefixingPlugin(configuration) {
- const prefix = prefixedArray(configuration, "-c");
- return {
- type: "spawn.args",
- action(data) {
- return [...prefix, ...data];
- }
- };
-}
-
-// src/lib/plugins/completion-detection.plugin.ts
-init_utils();
-import { deferred } from "@kwsites/promise-deferred";
-var never = deferred().promise;
-function completionDetectionPlugin({
- onClose = true,
- onExit = 50
-} = {}) {
- function createEvents() {
- let exitCode = -1;
- const events = {
- close: deferred(),
- closeTimeout: deferred(),
- exit: deferred(),
- exitTimeout: deferred()
- };
- const result = Promise.race([
- onClose === false ? never : events.closeTimeout.promise,
- onExit === false ? never : events.exitTimeout.promise
- ]);
- configureTimeout(onClose, events.close, events.closeTimeout);
- configureTimeout(onExit, events.exit, events.exitTimeout);
- return {
- close(code) {
- exitCode = code;
- events.close.done();
- },
- exit(code) {
- exitCode = code;
- events.exit.done();
- },
- get exitCode() {
- return exitCode;
- },
- result
- };
- }
- function configureTimeout(flag, event, timeout) {
- if (flag === false) {
- return;
- }
- (flag === true ? event.promise : event.promise.then(() => delay(flag))).then(timeout.done);
- }
- return {
- type: "spawn.after",
- action(_0, _1) {
- return __async(this, arguments, function* (_data, { spawned, close }) {
- var _a2, _b;
- const events = createEvents();
- let deferClose = true;
- let quickClose = () => void (deferClose = false);
- (_a2 = spawned.stdout) == null ? void 0 : _a2.on("data", quickClose);
- (_b = spawned.stderr) == null ? void 0 : _b.on("data", quickClose);
- spawned.on("error", quickClose);
- spawned.on("close", (code) => events.close(code));
- spawned.on("exit", (code) => events.exit(code));
- try {
- yield events.result;
- if (deferClose) {
- yield delay(50);
- }
- close(events.exitCode);
- } catch (err) {
- close(events.exitCode, err);
- }
- });
- }
- };
-}
-
-// src/lib/plugins/error-detection.plugin.ts
-init_git_error();
-function isTaskError(result) {
- return !!(result.exitCode && result.stdErr.length);
-}
-function getErrorMessage(result) {
- return Buffer.concat([...result.stdOut, ...result.stdErr]);
-}
-function errorDetectionHandler(overwrite = false, isError = isTaskError, errorMessage = getErrorMessage) {
- return (error, result) => {
- if (!overwrite && error || !isError(result)) {
- return error;
- }
- return errorMessage(result);
- };
-}
-function errorDetectionPlugin(config) {
- return {
- type: "task.error",
- action(data, context) {
- const error = config(data.error, {
- stdErr: context.stdErr,
- stdOut: context.stdOut,
- exitCode: context.exitCode
- });
- if (Buffer.isBuffer(error)) {
- return { error: new GitError(void 0, error.toString("utf-8")) };
- }
- return {
- error
- };
- }
- };
-}
-
-// src/lib/plugins/plugin-store.ts
-init_utils();
-var PluginStore = class {
- constructor() {
- this.plugins = /* @__PURE__ */ new Set();
- }
- add(plugin) {
- const plugins = [];
- asArray(plugin).forEach((plugin2) => plugin2 && this.plugins.add(append(plugins, plugin2)));
- return () => {
- plugins.forEach((plugin2) => this.plugins.delete(plugin2));
- };
- }
- exec(type, data, context) {
- let output = data;
- const contextual = Object.freeze(Object.create(context));
- for (const plugin of this.plugins) {
- if (plugin.type === type) {
- output = plugin.action(output, contextual);
- }
- }
- return output;
- }
-};
-
-// src/lib/plugins/progress-monitor-plugin.ts
-init_utils();
-function progressMonitorPlugin(progress) {
- const progressCommand = "--progress";
- const progressMethods = ["checkout", "clone", "fetch", "pull", "push"];
- const onProgress = {
- type: "spawn.after",
- action(_data, context) {
- var _a2;
- if (!context.commands.includes(progressCommand)) {
- return;
- }
- (_a2 = context.spawned.stderr) == null ? void 0 : _a2.on("data", (chunk) => {
- const message = /^([\s\S]+?):\s*(\d+)% \((\d+)\/(\d+)\)/.exec(chunk.toString("utf8"));
- if (!message) {
- return;
- }
- progress({
- method: context.method,
- stage: progressEventStage(message[1]),
- progress: asNumber(message[2]),
- processed: asNumber(message[3]),
- total: asNumber(message[4])
- });
- });
- }
- };
- const onArgs = {
- type: "spawn.args",
- action(args, context) {
- if (!progressMethods.includes(context.method)) {
- return args;
- }
- return including(args, progressCommand);
- }
- };
- return [onArgs, onProgress];
-}
-function progressEventStage(input) {
- return String(input.toLowerCase().split(" ", 1)) || "unknown";
-}
-
-// src/lib/plugins/spawn-options-plugin.ts
-init_utils();
-function spawnOptionsPlugin(spawnOptions) {
- const options = pick(spawnOptions, ["uid", "gid"]);
- return {
- type: "spawn.options",
- action(data) {
- return __spreadValues(__spreadValues({}, options), data);
- }
- };
-}
-
-// src/lib/plugins/timout-plugin.ts
-function timeoutPlugin({ block }) {
- if (block > 0) {
- return {
- type: "spawn.after",
- action(_data, context) {
- var _a2, _b;
- let timeout;
- function wait() {
- timeout && clearTimeout(timeout);
- timeout = setTimeout(kill, block);
- }
- function stop() {
- var _a3, _b2;
- (_a3 = context.spawned.stdout) == null ? void 0 : _a3.off("data", wait);
- (_b2 = context.spawned.stderr) == null ? void 0 : _b2.off("data", wait);
- context.spawned.off("exit", stop);
- context.spawned.off("close", stop);
- }
- function kill() {
- stop();
- context.kill(new GitPluginError(void 0, "timeout", `block timeout reached`));
- }
- (_a2 = context.spawned.stdout) == null ? void 0 : _a2.on("data", wait);
- (_b = context.spawned.stderr) == null ? void 0 : _b.on("data", wait);
- context.spawned.on("exit", stop);
- context.spawned.on("close", stop);
- wait();
- }
- };
- }
-}
-
-// src/lib/git-factory.ts
-init_utils();
-var Git = require_git();
-function gitInstanceFactory(baseDir, options) {
- const plugins = new PluginStore();
- const config = createInstanceConfig(baseDir && (typeof baseDir === "string" ? { baseDir } : baseDir) || {}, options);
- if (!folderExists(config.baseDir)) {
- throw new GitConstructError(config, `Cannot use simple-git on a directory that does not exist`);
- }
- if (Array.isArray(config.config)) {
- plugins.add(commandConfigPrefixingPlugin(config.config));
- }
- plugins.add(completionDetectionPlugin(config.completion));
- config.progress && plugins.add(progressMonitorPlugin(config.progress));
- config.timeout && plugins.add(timeoutPlugin(config.timeout));
- config.spawnOptions && plugins.add(spawnOptionsPlugin(config.spawnOptions));
- plugins.add(errorDetectionPlugin(errorDetectionHandler(true)));
- config.errors && plugins.add(errorDetectionPlugin(config.errors));
- return new Git(config, plugins);
-}
-
-// src/lib/runners/promise-wrapped.ts
-init_git_response_error();
-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 = 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;
- };
- }
-}
-function toError(error) {
- if (error instanceof Error) {
- return error;
- }
- if (typeof error === "string") {
- return new Error(error);
- }
- return new GitResponseError(error);
-}
-
-// src/esm.mjs
-var esm_default = gitInstanceFactory;
-export {
- CheckRepoActions,
- CleanOptions,
- GitConfigScope,
- GitConstructError,
- GitError,
- GitPluginError,
- GitResponseError,
- ResetMode,
- TaskConfigurationError,
- esm_default as default,
- gitP,
- grepQueryBuilder
-};
-//# sourceMappingURL=index.js.map