ya-git-jira 1.6.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.opencode/skills/architecture/SKILL.md +45 -0
- package/.opencode/skills/code-style/SKILL.md +76 -0
- package/.opencode/skills/git-confluence/SKILL.md +82 -0
- package/.opencode/skills/git-jira/SKILL.md +63 -0
- package/.opencode/skills/git-lab/SKILL.md +102 -0
- package/AGENTS.md +50 -0
- package/README.md +106 -106
- package/bin/git-api.ts +70 -0
- package/bin/git-confluence-page-search.ts +58 -0
- package/bin/git-confluence-page-show.ts +61 -0
- package/bin/git-confluence-page-update.ts +77 -0
- package/bin/git-confluence-page.ts +28 -0
- package/bin/git-confluence-space-list.ts +34 -0
- package/bin/git-confluence-space.ts +24 -0
- package/bin/git-confluence-whoami.ts +33 -0
- package/bin/git-confluence.ts +27 -0
- package/bin/git-jira-start.ts +1 -1
- package/bin/git-jira-whoami.ts +32 -0
- package/bin/git-jira.ts +2 -0
- package/bin/git-lab-project-mr-list.ts +57 -0
- package/bin/git-lab-project-mr.ts +24 -0
- package/bin/git-lab-project-pipeline-jobs.ts +46 -0
- package/bin/git-lab-project-pipeline-latest.ts +47 -0
- package/bin/git-lab-project-pipeline-log.ts +49 -0
- package/bin/git-lab-project-pipeline.ts +6 -0
- package/bin/git-lab-project.ts +5 -1
- package/bin/gitj-install-skills.ts +126 -0
- package/bin/gitj.ts +12 -0
- package/dist/bin/git-api.js +2156 -0
- package/dist/bin/git-bump.js +132 -121
- package/dist/bin/git-confluence-page-search.js +2079 -0
- package/dist/bin/git-confluence-page-show.js +2082 -0
- package/dist/bin/git-confluence-page-update.js +2093 -0
- package/dist/bin/git-confluence-page.js +2186 -0
- package/dist/bin/git-confluence-space-list.js +2061 -0
- package/dist/bin/git-confluence-space.js +2073 -0
- package/dist/bin/git-confluence-whoami.js +2060 -0
- package/dist/bin/git-confluence.js +2251 -0
- package/dist/bin/git-jira-issue-list.js +136 -125
- package/dist/bin/git-jira-issue-show.js +136 -125
- package/dist/bin/git-jira-issue.js +140 -129
- package/dist/bin/git-jira-start.js +138 -127
- package/dist/bin/git-jira-whoami.js +1972 -0
- package/dist/bin/git-jira.js +170 -139
- package/dist/bin/git-lab-group-list.js +321 -279
- package/dist/bin/git-lab-group.js +323 -281
- package/dist/bin/git-lab-merge-active.js +321 -279
- package/dist/bin/git-lab-merge-todo.js +321 -279
- package/dist/bin/git-lab-merge-train-list.js +289 -273
- package/dist/bin/git-lab-merge-train.js +291 -275
- package/dist/bin/git-lab-merge.js +330 -288
- package/dist/bin/git-lab-namespace-list.js +138 -127
- package/dist/bin/git-lab-namespace.js +140 -129
- package/dist/bin/git-lab-project-list.js +288 -272
- package/dist/bin/git-lab-project-mr-list.js +2740 -0
- package/dist/bin/git-lab-project-mr.js +2752 -0
- package/dist/bin/git-lab-project-pipeline-jobs.js +2734 -0
- package/dist/bin/git-lab-project-pipeline-latest.js +2736 -0
- package/dist/bin/git-lab-project-pipeline-list.js +323 -281
- package/dist/bin/git-lab-project-pipeline-log.js +2739 -0
- package/dist/bin/git-lab-project-pipeline.js +437 -292
- package/dist/bin/git-lab-project-whereami.js +292 -276
- package/dist/bin/git-lab-project.js +563 -288
- package/dist/bin/git-lab-whoami.js +142 -131
- package/dist/bin/git-lab.js +575 -338
- package/dist/bin/gitj-install-skills.js +1954 -0
- package/dist/bin/gitj.js +1385 -473
- package/dist/index.js +371 -187
- package/index.ts +1 -0
- package/lib/api.ts +177 -0
- package/lib/confluence/api.ts +132 -0
- package/lib/confluence/config.ts +25 -0
- package/lib/confluence/index.ts +3 -0
- package/lib/confluence/types.ts +59 -0
- package/lib/gitlab/index.ts +1 -0
- package/lib/gitlab/job.ts +31 -0
- package/lib/gitlab/merge-request.ts +20 -0
- package/lib/gitlab/pipeline.ts +28 -1
- package/lib/gitlab/project.ts +14 -5
- package/lib/help.ts +40 -0
- package/lib/jira.ts +2 -2
- package/package.json +18 -2
- package/tests/all-help.test.ts +6 -1
- package/tests/gitj.test.ts +1 -1
- package/tests/help-all.test.ts +29 -0
- package/bun.lockb +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
3
|
var __create = Object.create;
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
4
|
var __getProtoOf = Object.getPrototypeOf;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
8
|
var __toESM = (mod, isNodeMode, target) => {
|
|
@@ -17,11 +17,9 @@ var __toESM = (mod, isNodeMode, target) => {
|
|
|
17
17
|
return to;
|
|
18
18
|
};
|
|
19
19
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
20
|
-
var __require =
|
|
21
|
-
return import.meta.require(id);
|
|
22
|
-
};
|
|
20
|
+
var __require = import.meta.require;
|
|
23
21
|
|
|
24
|
-
//
|
|
22
|
+
// node_modules/commander/lib/error.js
|
|
25
23
|
var require_error = __commonJS((exports) => {
|
|
26
24
|
class CommanderError extends Error {
|
|
27
25
|
constructor(exitCode, code, message) {
|
|
@@ -45,12 +43,8 @@ var require_error = __commonJS((exports) => {
|
|
|
45
43
|
exports.InvalidArgumentError = InvalidArgumentError;
|
|
46
44
|
});
|
|
47
45
|
|
|
48
|
-
//
|
|
46
|
+
// node_modules/commander/lib/argument.js
|
|
49
47
|
var require_argument = __commonJS((exports) => {
|
|
50
|
-
var humanReadableArgName = function(arg) {
|
|
51
|
-
const nameOutput = arg.name() + (arg.variadic === true ? "..." : "");
|
|
52
|
-
return arg.required ? "<" + nameOutput + ">" : "[" + nameOutput + "]";
|
|
53
|
-
};
|
|
54
48
|
var { InvalidArgumentError } = require_error();
|
|
55
49
|
|
|
56
50
|
class Argument {
|
|
@@ -120,11 +114,15 @@ var require_argument = __commonJS((exports) => {
|
|
|
120
114
|
return this;
|
|
121
115
|
}
|
|
122
116
|
}
|
|
117
|
+
function humanReadableArgName(arg) {
|
|
118
|
+
const nameOutput = arg.name() + (arg.variadic === true ? "..." : "");
|
|
119
|
+
return arg.required ? "<" + nameOutput + ">" : "[" + nameOutput + "]";
|
|
120
|
+
}
|
|
123
121
|
exports.Argument = Argument;
|
|
124
122
|
exports.humanReadableArgName = humanReadableArgName;
|
|
125
123
|
});
|
|
126
124
|
|
|
127
|
-
//
|
|
125
|
+
// node_modules/commander/lib/help.js
|
|
128
126
|
var require_help = __commonJS((exports) => {
|
|
129
127
|
var { humanReadableArgName } = require_argument();
|
|
130
128
|
|
|
@@ -301,7 +299,8 @@ var require_help = __commonJS((exports) => {
|
|
|
301
299
|
return term;
|
|
302
300
|
}
|
|
303
301
|
function formatList(textArray) {
|
|
304
|
-
return textArray.join(
|
|
302
|
+
return textArray.join(`
|
|
303
|
+
`).replace(/^/gm, " ".repeat(itemIndentWidth));
|
|
305
304
|
}
|
|
306
305
|
let output = [`Usage: ${helper.commandUsage(cmd)}`, ""];
|
|
307
306
|
const commandDescription = helper.commandDescription(cmd);
|
|
@@ -334,7 +333,8 @@ var require_help = __commonJS((exports) => {
|
|
|
334
333
|
if (commandList.length > 0) {
|
|
335
334
|
output = output.concat(["Commands:", formatList(commandList), ""]);
|
|
336
335
|
}
|
|
337
|
-
return output.join(
|
|
336
|
+
return output.join(`
|
|
337
|
+
`);
|
|
338
338
|
}
|
|
339
339
|
padWidth(cmd, helper) {
|
|
340
340
|
return Math.max(helper.longestOptionTermLength(cmd, helper), helper.longestGlobalOptionTermLength(cmd, helper), helper.longestSubcommandTermLength(cmd, helper), helper.longestArgumentTermLength(cmd, helper));
|
|
@@ -348,42 +348,29 @@ var require_help = __commonJS((exports) => {
|
|
|
348
348
|
if (columnWidth < minColumnWidth)
|
|
349
349
|
return str;
|
|
350
350
|
const leadingStr = str.slice(0, indent);
|
|
351
|
-
const columnText = str.slice(indent).replace(
|
|
351
|
+
const columnText = str.slice(indent).replace(`\r
|
|
352
|
+
`, `
|
|
353
|
+
`);
|
|
352
354
|
const indentString = " ".repeat(indent);
|
|
353
355
|
const zeroWidthSpace = "\u200B";
|
|
354
356
|
const breaks = `\\s${zeroWidthSpace}`;
|
|
355
|
-
const regex = new RegExp(
|
|
357
|
+
const regex = new RegExp(`
|
|
358
|
+
|.{1,${columnWidth - 1}}([${breaks}]|$)|[^${breaks}]+?([${breaks}]|$)`, "g");
|
|
356
359
|
const lines = columnText.match(regex) || [];
|
|
357
360
|
return leadingStr + lines.map((line, i) => {
|
|
358
|
-
if (line ===
|
|
361
|
+
if (line === `
|
|
362
|
+
`)
|
|
359
363
|
return "";
|
|
360
364
|
return (i > 0 ? indentString : "") + line.trimEnd();
|
|
361
|
-
}).join(
|
|
365
|
+
}).join(`
|
|
366
|
+
`);
|
|
362
367
|
}
|
|
363
368
|
}
|
|
364
369
|
exports.Help = Help;
|
|
365
370
|
});
|
|
366
371
|
|
|
367
|
-
//
|
|
372
|
+
// node_modules/commander/lib/option.js
|
|
368
373
|
var require_option = __commonJS((exports) => {
|
|
369
|
-
var camelcase = function(str) {
|
|
370
|
-
return str.split("-").reduce((str2, word) => {
|
|
371
|
-
return str2 + word[0].toUpperCase() + word.slice(1);
|
|
372
|
-
});
|
|
373
|
-
};
|
|
374
|
-
var splitOptionFlags = function(flags) {
|
|
375
|
-
let shortFlag;
|
|
376
|
-
let longFlag;
|
|
377
|
-
const flagParts = flags.split(/[ |,]+/);
|
|
378
|
-
if (flagParts.length > 1 && !/^[[<]/.test(flagParts[1]))
|
|
379
|
-
shortFlag = flagParts.shift();
|
|
380
|
-
longFlag = flagParts.shift();
|
|
381
|
-
if (!shortFlag && /^-[^-]$/.test(longFlag)) {
|
|
382
|
-
shortFlag = longFlag;
|
|
383
|
-
longFlag = undefined;
|
|
384
|
-
}
|
|
385
|
-
return { shortFlag, longFlag };
|
|
386
|
-
};
|
|
387
374
|
var { InvalidArgumentError } = require_error();
|
|
388
375
|
|
|
389
376
|
class Option {
|
|
@@ -511,14 +498,33 @@ var require_option = __commonJS((exports) => {
|
|
|
511
498
|
return option.negate === (negativeValue === value);
|
|
512
499
|
}
|
|
513
500
|
}
|
|
501
|
+
function camelcase(str) {
|
|
502
|
+
return str.split("-").reduce((str2, word) => {
|
|
503
|
+
return str2 + word[0].toUpperCase() + word.slice(1);
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
function splitOptionFlags(flags) {
|
|
507
|
+
let shortFlag;
|
|
508
|
+
let longFlag;
|
|
509
|
+
const flagParts = flags.split(/[ |,]+/);
|
|
510
|
+
if (flagParts.length > 1 && !/^[[<]/.test(flagParts[1]))
|
|
511
|
+
shortFlag = flagParts.shift();
|
|
512
|
+
longFlag = flagParts.shift();
|
|
513
|
+
if (!shortFlag && /^-[^-]$/.test(longFlag)) {
|
|
514
|
+
shortFlag = longFlag;
|
|
515
|
+
longFlag = undefined;
|
|
516
|
+
}
|
|
517
|
+
return { shortFlag, longFlag };
|
|
518
|
+
}
|
|
514
519
|
exports.Option = Option;
|
|
515
520
|
exports.splitOptionFlags = splitOptionFlags;
|
|
516
521
|
exports.DualOptions = DualOptions;
|
|
517
522
|
});
|
|
518
523
|
|
|
519
|
-
//
|
|
524
|
+
// node_modules/commander/lib/suggestSimilar.js
|
|
520
525
|
var require_suggestSimilar = __commonJS((exports) => {
|
|
521
|
-
var
|
|
526
|
+
var maxDistance = 3;
|
|
527
|
+
function editDistance(a, b) {
|
|
522
528
|
if (Math.abs(a.length - b.length) > maxDistance)
|
|
523
529
|
return Math.max(a.length, b.length);
|
|
524
530
|
const d = [];
|
|
@@ -543,8 +549,8 @@ var require_suggestSimilar = __commonJS((exports) => {
|
|
|
543
549
|
}
|
|
544
550
|
}
|
|
545
551
|
return d[a.length][b.length];
|
|
546
|
-
}
|
|
547
|
-
|
|
552
|
+
}
|
|
553
|
+
function suggestSimilar(word, candidates) {
|
|
548
554
|
if (!candidates || candidates.length === 0)
|
|
549
555
|
return "";
|
|
550
556
|
candidates = Array.from(new Set(candidates));
|
|
@@ -576,67 +582,25 @@ var require_suggestSimilar = __commonJS((exports) => {
|
|
|
576
582
|
similar = similar.map((candidate) => `--${candidate}`);
|
|
577
583
|
}
|
|
578
584
|
if (similar.length > 1) {
|
|
579
|
-
return
|
|
585
|
+
return `
|
|
586
|
+
(Did you mean one of ${similar.join(", ")}?)`;
|
|
580
587
|
}
|
|
581
588
|
if (similar.length === 1) {
|
|
582
|
-
return
|
|
589
|
+
return `
|
|
590
|
+
(Did you mean ${similar[0]}?)`;
|
|
583
591
|
}
|
|
584
592
|
return "";
|
|
585
|
-
}
|
|
586
|
-
var maxDistance = 3;
|
|
593
|
+
}
|
|
587
594
|
exports.suggestSimilar = suggestSimilar;
|
|
588
595
|
});
|
|
589
596
|
|
|
590
|
-
//
|
|
597
|
+
// node_modules/commander/lib/command.js
|
|
591
598
|
var require_command = __commonJS((exports) => {
|
|
592
|
-
var
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
}
|
|
598
|
-
};
|
|
599
|
-
var incrementNodeInspectorPort = function(args) {
|
|
600
|
-
return args.map((arg) => {
|
|
601
|
-
if (!arg.startsWith("--inspect")) {
|
|
602
|
-
return arg;
|
|
603
|
-
}
|
|
604
|
-
let debugOption;
|
|
605
|
-
let debugHost = "127.0.0.1";
|
|
606
|
-
let debugPort = "9229";
|
|
607
|
-
let match;
|
|
608
|
-
if ((match = arg.match(/^(--inspect(-brk)?)$/)) !== null) {
|
|
609
|
-
debugOption = match[1];
|
|
610
|
-
} else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) !== null) {
|
|
611
|
-
debugOption = match[1];
|
|
612
|
-
if (/^\d+$/.test(match[3])) {
|
|
613
|
-
debugPort = match[3];
|
|
614
|
-
} else {
|
|
615
|
-
debugHost = match[3];
|
|
616
|
-
}
|
|
617
|
-
} else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/)) !== null) {
|
|
618
|
-
debugOption = match[1];
|
|
619
|
-
debugHost = match[3];
|
|
620
|
-
debugPort = match[4];
|
|
621
|
-
}
|
|
622
|
-
if (debugOption && debugPort !== "0") {
|
|
623
|
-
return `${debugOption}=${debugHost}:${parseInt(debugPort) + 1}`;
|
|
624
|
-
}
|
|
625
|
-
return arg;
|
|
626
|
-
});
|
|
627
|
-
};
|
|
628
|
-
var getCommandAndParents = function(startCommand) {
|
|
629
|
-
const result = [];
|
|
630
|
-
for (let command = startCommand;command; command = command.parent) {
|
|
631
|
-
result.push(command);
|
|
632
|
-
}
|
|
633
|
-
return result;
|
|
634
|
-
};
|
|
635
|
-
var EventEmitter = import.meta.require("events").EventEmitter;
|
|
636
|
-
var childProcess = import.meta.require("child_process");
|
|
637
|
-
var path = import.meta.require("path");
|
|
638
|
-
var fs = import.meta.require("fs");
|
|
639
|
-
var process2 = import.meta.require("process");
|
|
599
|
+
var EventEmitter = __require("events").EventEmitter;
|
|
600
|
+
var childProcess = __require("child_process");
|
|
601
|
+
var path = __require("path");
|
|
602
|
+
var fs = __require("fs");
|
|
603
|
+
var process2 = __require("process");
|
|
640
604
|
var { Argument, humanReadableArgName } = require_argument();
|
|
641
605
|
var { CommanderError } = require_error();
|
|
642
606
|
var { Help } = require_help();
|
|
@@ -853,8 +817,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
853
817
|
this._exitCallback = (err) => {
|
|
854
818
|
if (err.code !== "commander.executeSubCommandAsync") {
|
|
855
819
|
throw err;
|
|
856
|
-
} else {
|
|
857
|
-
}
|
|
820
|
+
} else {}
|
|
858
821
|
};
|
|
859
822
|
}
|
|
860
823
|
return this;
|
|
@@ -1491,11 +1454,14 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1491
1454
|
return getCommandAndParents(this).reduce((combinedOptions, cmd) => Object.assign(combinedOptions, cmd.opts()), {});
|
|
1492
1455
|
}
|
|
1493
1456
|
error(message, errorOptions) {
|
|
1494
|
-
this._outputConfiguration.outputError(`${message}
|
|
1457
|
+
this._outputConfiguration.outputError(`${message}
|
|
1458
|
+
`, this._outputConfiguration.writeErr);
|
|
1495
1459
|
if (typeof this._showHelpAfterError === "string") {
|
|
1496
|
-
this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
1460
|
+
this._outputConfiguration.writeErr(`${this._showHelpAfterError}
|
|
1461
|
+
`);
|
|
1497
1462
|
} else if (this._showHelpAfterError) {
|
|
1498
|
-
this._outputConfiguration.writeErr(
|
|
1463
|
+
this._outputConfiguration.writeErr(`
|
|
1464
|
+
`);
|
|
1499
1465
|
this.outputHelp({ error: true });
|
|
1500
1466
|
}
|
|
1501
1467
|
const config = errorOptions || {};
|
|
@@ -1505,7 +1471,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1505
1471
|
}
|
|
1506
1472
|
_parseOptionsEnv() {
|
|
1507
1473
|
this.options.forEach((option) => {
|
|
1508
|
-
if (option.envVar &&
|
|
1474
|
+
if (option.envVar && option.envVar in process2.env) {
|
|
1509
1475
|
const optionKey = option.attributeName();
|
|
1510
1476
|
if (this.getOptionValue(optionKey) === undefined || ["default", "config", "env"].includes(this.getOptionValueSource(optionKey))) {
|
|
1511
1477
|
if (option.required || option.optional) {
|
|
@@ -1614,7 +1580,8 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1614
1580
|
this._versionOptionName = versionOption.attributeName();
|
|
1615
1581
|
this.options.push(versionOption);
|
|
1616
1582
|
this.on("option:" + versionOption.name(), () => {
|
|
1617
|
-
this._outputConfiguration.writeOut(`${str}
|
|
1583
|
+
this._outputConfiguration.writeOut(`${str}
|
|
1584
|
+
`);
|
|
1618
1585
|
this._exit(0, "commander.version", str);
|
|
1619
1586
|
});
|
|
1620
1587
|
return this;
|
|
@@ -1642,7 +1609,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1642
1609
|
command = this.commands[this.commands.length - 1];
|
|
1643
1610
|
}
|
|
1644
1611
|
if (alias === command._name)
|
|
1645
|
-
throw new Error("Command alias can
|
|
1612
|
+
throw new Error("Command alias can't be the same as its name");
|
|
1646
1613
|
command._aliases.push(alias);
|
|
1647
1614
|
return this;
|
|
1648
1615
|
}
|
|
@@ -1756,16 +1723,60 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
1756
1723
|
helpStr = text;
|
|
1757
1724
|
}
|
|
1758
1725
|
if (helpStr) {
|
|
1759
|
-
context.write(`${helpStr}
|
|
1726
|
+
context.write(`${helpStr}
|
|
1727
|
+
`);
|
|
1760
1728
|
}
|
|
1761
1729
|
});
|
|
1762
1730
|
return this;
|
|
1763
1731
|
}
|
|
1764
1732
|
}
|
|
1733
|
+
function outputHelpIfRequested(cmd, args) {
|
|
1734
|
+
const helpOption = cmd._hasHelpOption && args.find((arg) => arg === cmd._helpLongFlag || arg === cmd._helpShortFlag);
|
|
1735
|
+
if (helpOption) {
|
|
1736
|
+
cmd.outputHelp();
|
|
1737
|
+
cmd._exit(0, "commander.helpDisplayed", "(outputHelp)");
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
function incrementNodeInspectorPort(args) {
|
|
1741
|
+
return args.map((arg) => {
|
|
1742
|
+
if (!arg.startsWith("--inspect")) {
|
|
1743
|
+
return arg;
|
|
1744
|
+
}
|
|
1745
|
+
let debugOption;
|
|
1746
|
+
let debugHost = "127.0.0.1";
|
|
1747
|
+
let debugPort = "9229";
|
|
1748
|
+
let match;
|
|
1749
|
+
if ((match = arg.match(/^(--inspect(-brk)?)$/)) !== null) {
|
|
1750
|
+
debugOption = match[1];
|
|
1751
|
+
} else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+)$/)) !== null) {
|
|
1752
|
+
debugOption = match[1];
|
|
1753
|
+
if (/^\d+$/.test(match[3])) {
|
|
1754
|
+
debugPort = match[3];
|
|
1755
|
+
} else {
|
|
1756
|
+
debugHost = match[3];
|
|
1757
|
+
}
|
|
1758
|
+
} else if ((match = arg.match(/^(--inspect(-brk|-port)?)=([^:]+):(\d+)$/)) !== null) {
|
|
1759
|
+
debugOption = match[1];
|
|
1760
|
+
debugHost = match[3];
|
|
1761
|
+
debugPort = match[4];
|
|
1762
|
+
}
|
|
1763
|
+
if (debugOption && debugPort !== "0") {
|
|
1764
|
+
return `${debugOption}=${debugHost}:${parseInt(debugPort) + 1}`;
|
|
1765
|
+
}
|
|
1766
|
+
return arg;
|
|
1767
|
+
});
|
|
1768
|
+
}
|
|
1769
|
+
function getCommandAndParents(startCommand) {
|
|
1770
|
+
const result = [];
|
|
1771
|
+
for (let command = startCommand;command; command = command.parent) {
|
|
1772
|
+
result.push(command);
|
|
1773
|
+
}
|
|
1774
|
+
return result;
|
|
1775
|
+
}
|
|
1765
1776
|
exports.Command = Command;
|
|
1766
1777
|
});
|
|
1767
1778
|
|
|
1768
|
-
//
|
|
1779
|
+
// node_modules/commander/index.js
|
|
1769
1780
|
var require_commander = __commonJS((exports, module) => {
|
|
1770
1781
|
var { Argument } = require_argument();
|
|
1771
1782
|
var { Command } = require_command();
|
|
@@ -1783,9 +1794,25 @@ var require_commander = __commonJS((exports, module) => {
|
|
|
1783
1794
|
exports.Option = Option;
|
|
1784
1795
|
});
|
|
1785
1796
|
|
|
1786
|
-
//
|
|
1797
|
+
// node_modules/ms/index.js
|
|
1787
1798
|
var require_ms = __commonJS((exports, module) => {
|
|
1788
|
-
var
|
|
1799
|
+
var s = 1000;
|
|
1800
|
+
var m = s * 60;
|
|
1801
|
+
var h = m * 60;
|
|
1802
|
+
var d = h * 24;
|
|
1803
|
+
var w = d * 7;
|
|
1804
|
+
var y = d * 365.25;
|
|
1805
|
+
module.exports = function(val, options) {
|
|
1806
|
+
options = options || {};
|
|
1807
|
+
var type = typeof val;
|
|
1808
|
+
if (type === "string" && val.length > 0) {
|
|
1809
|
+
return parse(val);
|
|
1810
|
+
} else if (type === "number" && isFinite(val)) {
|
|
1811
|
+
return options.long ? fmtLong(val) : fmtShort(val);
|
|
1812
|
+
}
|
|
1813
|
+
throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
|
|
1814
|
+
};
|
|
1815
|
+
function parse(str) {
|
|
1789
1816
|
str = String(str);
|
|
1790
1817
|
if (str.length > 100) {
|
|
1791
1818
|
return;
|
|
@@ -1838,8 +1865,8 @@ var require_ms = __commonJS((exports, module) => {
|
|
|
1838
1865
|
default:
|
|
1839
1866
|
return;
|
|
1840
1867
|
}
|
|
1841
|
-
}
|
|
1842
|
-
|
|
1868
|
+
}
|
|
1869
|
+
function fmtShort(ms) {
|
|
1843
1870
|
var msAbs = Math.abs(ms);
|
|
1844
1871
|
if (msAbs >= d) {
|
|
1845
1872
|
return Math.round(ms / d) + "d";
|
|
@@ -1854,8 +1881,8 @@ var require_ms = __commonJS((exports, module) => {
|
|
|
1854
1881
|
return Math.round(ms / s) + "s";
|
|
1855
1882
|
}
|
|
1856
1883
|
return ms + "ms";
|
|
1857
|
-
}
|
|
1858
|
-
|
|
1884
|
+
}
|
|
1885
|
+
function fmtLong(ms) {
|
|
1859
1886
|
var msAbs = Math.abs(ms);
|
|
1860
1887
|
if (msAbs >= d) {
|
|
1861
1888
|
return plural(ms, msAbs, d, "day");
|
|
@@ -1870,32 +1897,16 @@ var require_ms = __commonJS((exports, module) => {
|
|
|
1870
1897
|
return plural(ms, msAbs, s, "second");
|
|
1871
1898
|
}
|
|
1872
1899
|
return ms + " ms";
|
|
1873
|
-
}
|
|
1874
|
-
|
|
1900
|
+
}
|
|
1901
|
+
function plural(ms, msAbs, n, name) {
|
|
1875
1902
|
var isPlural = msAbs >= n * 1.5;
|
|
1876
1903
|
return Math.round(ms / n) + " " + name + (isPlural ? "s" : "");
|
|
1877
|
-
}
|
|
1878
|
-
var s = 1000;
|
|
1879
|
-
var m = s * 60;
|
|
1880
|
-
var h = m * 60;
|
|
1881
|
-
var d = h * 24;
|
|
1882
|
-
var w = d * 7;
|
|
1883
|
-
var y = d * 365.25;
|
|
1884
|
-
module.exports = function(val, options) {
|
|
1885
|
-
options = options || {};
|
|
1886
|
-
var type = typeof val;
|
|
1887
|
-
if (type === "string" && val.length > 0) {
|
|
1888
|
-
return parse(val);
|
|
1889
|
-
} else if (type === "number" && isFinite(val)) {
|
|
1890
|
-
return options.long ? fmtLong(val) : fmtShort(val);
|
|
1891
|
-
}
|
|
1892
|
-
throw new Error("val is not a non-empty string or a valid number. val=" + JSON.stringify(val));
|
|
1893
|
-
};
|
|
1904
|
+
}
|
|
1894
1905
|
});
|
|
1895
1906
|
|
|
1896
|
-
//
|
|
1907
|
+
// node_modules/debug/src/common.js
|
|
1897
1908
|
var require_common = __commonJS((exports, module) => {
|
|
1898
|
-
|
|
1909
|
+
function setup(env) {
|
|
1899
1910
|
createDebug.debug = createDebug;
|
|
1900
1911
|
createDebug.default = createDebug;
|
|
1901
1912
|
createDebug.coerce = coerce;
|
|
@@ -2050,68 +2061,12 @@ var require_common = __commonJS((exports, module) => {
|
|
|
2050
2061
|
}
|
|
2051
2062
|
createDebug.enable(createDebug.load());
|
|
2052
2063
|
return createDebug;
|
|
2053
|
-
}
|
|
2064
|
+
}
|
|
2054
2065
|
module.exports = setup;
|
|
2055
2066
|
});
|
|
2056
2067
|
|
|
2057
|
-
//
|
|
2068
|
+
// node_modules/debug/src/browser.js
|
|
2058
2069
|
var require_browser = __commonJS((exports, module) => {
|
|
2059
|
-
var useColors = function() {
|
|
2060
|
-
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
|
|
2061
|
-
return true;
|
|
2062
|
-
}
|
|
2063
|
-
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
|
2064
|
-
return false;
|
|
2065
|
-
}
|
|
2066
|
-
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
|
2067
|
-
};
|
|
2068
|
-
var formatArgs = function(args) {
|
|
2069
|
-
args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + exports.humanize(this.diff);
|
|
2070
|
-
if (!this.useColors) {
|
|
2071
|
-
return;
|
|
2072
|
-
}
|
|
2073
|
-
const c = "color: " + this.color;
|
|
2074
|
-
args.splice(1, 0, c, "color: inherit");
|
|
2075
|
-
let index = 0;
|
|
2076
|
-
let lastC = 0;
|
|
2077
|
-
args[0].replace(/%[a-zA-Z%]/g, (match) => {
|
|
2078
|
-
if (match === "%%") {
|
|
2079
|
-
return;
|
|
2080
|
-
}
|
|
2081
|
-
index++;
|
|
2082
|
-
if (match === "%c") {
|
|
2083
|
-
lastC = index;
|
|
2084
|
-
}
|
|
2085
|
-
});
|
|
2086
|
-
args.splice(lastC, 0, c);
|
|
2087
|
-
};
|
|
2088
|
-
var save = function(namespaces) {
|
|
2089
|
-
try {
|
|
2090
|
-
if (namespaces) {
|
|
2091
|
-
exports.storage.setItem("debug", namespaces);
|
|
2092
|
-
} else {
|
|
2093
|
-
exports.storage.removeItem("debug");
|
|
2094
|
-
}
|
|
2095
|
-
} catch (error) {
|
|
2096
|
-
}
|
|
2097
|
-
};
|
|
2098
|
-
var load = function() {
|
|
2099
|
-
let r;
|
|
2100
|
-
try {
|
|
2101
|
-
r = exports.storage.getItem("debug");
|
|
2102
|
-
} catch (error) {
|
|
2103
|
-
}
|
|
2104
|
-
if (!r && typeof process !== "undefined" && ("env" in process)) {
|
|
2105
|
-
r = process.env.DEBUG;
|
|
2106
|
-
}
|
|
2107
|
-
return r;
|
|
2108
|
-
};
|
|
2109
|
-
var localstorage = function() {
|
|
2110
|
-
try {
|
|
2111
|
-
return localStorage;
|
|
2112
|
-
} catch (error) {
|
|
2113
|
-
}
|
|
2114
|
-
};
|
|
2115
2070
|
exports.formatArgs = formatArgs;
|
|
2116
2071
|
exports.save = save;
|
|
2117
2072
|
exports.load = load;
|
|
@@ -2204,8 +2159,60 @@ var require_browser = __commonJS((exports, module) => {
|
|
|
2204
2159
|
"#FFCC00",
|
|
2205
2160
|
"#FFCC33"
|
|
2206
2161
|
];
|
|
2207
|
-
|
|
2208
|
-
|
|
2162
|
+
function useColors() {
|
|
2163
|
+
if (typeof window !== "undefined" && window.process && (window.process.type === "renderer" || window.process.__nwjs)) {
|
|
2164
|
+
return true;
|
|
2165
|
+
}
|
|
2166
|
+
if (typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) {
|
|
2167
|
+
return false;
|
|
2168
|
+
}
|
|
2169
|
+
return typeof document !== "undefined" && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || typeof window !== "undefined" && window.console && (window.console.firebug || window.console.exception && window.console.table) || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31 || typeof navigator !== "undefined" && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/);
|
|
2170
|
+
}
|
|
2171
|
+
function formatArgs(args) {
|
|
2172
|
+
args[0] = (this.useColors ? "%c" : "") + this.namespace + (this.useColors ? " %c" : " ") + args[0] + (this.useColors ? "%c " : " ") + "+" + module.exports.humanize(this.diff);
|
|
2173
|
+
if (!this.useColors) {
|
|
2174
|
+
return;
|
|
2175
|
+
}
|
|
2176
|
+
const c = "color: " + this.color;
|
|
2177
|
+
args.splice(1, 0, c, "color: inherit");
|
|
2178
|
+
let index = 0;
|
|
2179
|
+
let lastC = 0;
|
|
2180
|
+
args[0].replace(/%[a-zA-Z%]/g, (match) => {
|
|
2181
|
+
if (match === "%%") {
|
|
2182
|
+
return;
|
|
2183
|
+
}
|
|
2184
|
+
index++;
|
|
2185
|
+
if (match === "%c") {
|
|
2186
|
+
lastC = index;
|
|
2187
|
+
}
|
|
2188
|
+
});
|
|
2189
|
+
args.splice(lastC, 0, c);
|
|
2190
|
+
}
|
|
2191
|
+
exports.log = console.debug || console.log || (() => {});
|
|
2192
|
+
function save(namespaces) {
|
|
2193
|
+
try {
|
|
2194
|
+
if (namespaces) {
|
|
2195
|
+
exports.storage.setItem("debug", namespaces);
|
|
2196
|
+
} else {
|
|
2197
|
+
exports.storage.removeItem("debug");
|
|
2198
|
+
}
|
|
2199
|
+
} catch (error) {}
|
|
2200
|
+
}
|
|
2201
|
+
function load() {
|
|
2202
|
+
let r;
|
|
2203
|
+
try {
|
|
2204
|
+
r = exports.storage.getItem("debug");
|
|
2205
|
+
} catch (error) {}
|
|
2206
|
+
if (!r && typeof process !== "undefined" && "env" in process) {
|
|
2207
|
+
r = process.env.DEBUG;
|
|
2208
|
+
}
|
|
2209
|
+
return r;
|
|
2210
|
+
}
|
|
2211
|
+
function localstorage() {
|
|
2212
|
+
try {
|
|
2213
|
+
return localStorage;
|
|
2214
|
+
} catch (error) {}
|
|
2215
|
+
}
|
|
2209
2216
|
module.exports = require_common()(exports);
|
|
2210
2217
|
var { formatters } = module.exports;
|
|
2211
2218
|
formatters.j = function(v) {
|
|
@@ -2217,62 +2224,20 @@ var require_browser = __commonJS((exports, module) => {
|
|
|
2217
2224
|
};
|
|
2218
2225
|
});
|
|
2219
2226
|
|
|
2220
|
-
//
|
|
2227
|
+
// node_modules/debug/src/node.js
|
|
2221
2228
|
var require_node = __commonJS((exports, module) => {
|
|
2222
|
-
var
|
|
2223
|
-
|
|
2224
|
-
};
|
|
2225
|
-
var formatArgs = function(args) {
|
|
2226
|
-
const { namespace: name, useColors: useColors2 } = this;
|
|
2227
|
-
if (useColors2) {
|
|
2228
|
-
const c = this.color;
|
|
2229
|
-
const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
|
|
2230
|
-
const prefix = ` ${colorCode};1m${name} \x1B[0m`;
|
|
2231
|
-
args[0] = prefix + args[0].split("\n").join("\n" + prefix);
|
|
2232
|
-
args.push(colorCode + "m+" + exports.humanize(this.diff) + "\x1B[0m");
|
|
2233
|
-
} else {
|
|
2234
|
-
args[0] = getDate() + name + " " + args[0];
|
|
2235
|
-
}
|
|
2236
|
-
};
|
|
2237
|
-
var getDate = function() {
|
|
2238
|
-
if (exports.inspectOpts.hideDate) {
|
|
2239
|
-
return "";
|
|
2240
|
-
}
|
|
2241
|
-
return new Date().toISOString() + " ";
|
|
2242
|
-
};
|
|
2243
|
-
var log = function(...args) {
|
|
2244
|
-
return process.stderr.write(util.format(...args) + "\n");
|
|
2245
|
-
};
|
|
2246
|
-
var save = function(namespaces) {
|
|
2247
|
-
if (namespaces) {
|
|
2248
|
-
process.env.DEBUG = namespaces;
|
|
2249
|
-
} else {
|
|
2250
|
-
delete process.env.DEBUG;
|
|
2251
|
-
}
|
|
2252
|
-
};
|
|
2253
|
-
var load = function() {
|
|
2254
|
-
return process.env.DEBUG;
|
|
2255
|
-
};
|
|
2256
|
-
var init = function(debug) {
|
|
2257
|
-
debug.inspectOpts = {};
|
|
2258
|
-
const keys = Object.keys(exports.inspectOpts);
|
|
2259
|
-
for (let i = 0;i < keys.length; i++) {
|
|
2260
|
-
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
|
2261
|
-
}
|
|
2262
|
-
};
|
|
2263
|
-
var tty = import.meta.require("tty");
|
|
2264
|
-
var util = import.meta.require("util");
|
|
2229
|
+
var tty = __require("tty");
|
|
2230
|
+
var util = __require("util");
|
|
2265
2231
|
exports.init = init;
|
|
2266
2232
|
exports.log = log;
|
|
2267
2233
|
exports.formatArgs = formatArgs;
|
|
2268
2234
|
exports.save = save;
|
|
2269
2235
|
exports.load = load;
|
|
2270
2236
|
exports.useColors = useColors;
|
|
2271
|
-
exports.destroy = util.deprecate(() => {
|
|
2272
|
-
}, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
2237
|
+
exports.destroy = util.deprecate(() => {}, "Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.");
|
|
2273
2238
|
exports.colors = [6, 2, 3, 4, 5, 1];
|
|
2274
2239
|
try {
|
|
2275
|
-
const supportsColor = (()=>{
|
|
2240
|
+
const supportsColor = (()=>{throw new Error("Cannot require module "+"supports-color");})();
|
|
2276
2241
|
if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {
|
|
2277
2242
|
exports.colors = [
|
|
2278
2243
|
20,
|
|
@@ -2353,8 +2318,7 @@ var require_node = __commonJS((exports, module) => {
|
|
|
2353
2318
|
221
|
|
2354
2319
|
];
|
|
2355
2320
|
}
|
|
2356
|
-
} catch (error) {
|
|
2357
|
-
}
|
|
2321
|
+
} catch (error) {}
|
|
2358
2322
|
exports.inspectOpts = Object.keys(process.env).filter((key) => {
|
|
2359
2323
|
return /^debug_/i.test(key);
|
|
2360
2324
|
}).reduce((obj, key) => {
|
|
@@ -2374,11 +2338,56 @@ var require_node = __commonJS((exports, module) => {
|
|
|
2374
2338
|
obj[prop] = val;
|
|
2375
2339
|
return obj;
|
|
2376
2340
|
}, {});
|
|
2341
|
+
function useColors() {
|
|
2342
|
+
return "colors" in exports.inspectOpts ? Boolean(exports.inspectOpts.colors) : tty.isatty(process.stderr.fd);
|
|
2343
|
+
}
|
|
2344
|
+
function formatArgs(args) {
|
|
2345
|
+
const { namespace: name, useColors: useColors2 } = this;
|
|
2346
|
+
if (useColors2) {
|
|
2347
|
+
const c = this.color;
|
|
2348
|
+
const colorCode = "\x1B[3" + (c < 8 ? c : "8;5;" + c);
|
|
2349
|
+
const prefix = ` ${colorCode};1m${name} \x1B[0m`;
|
|
2350
|
+
args[0] = prefix + args[0].split(`
|
|
2351
|
+
`).join(`
|
|
2352
|
+
` + prefix);
|
|
2353
|
+
args.push(colorCode + "m+" + module.exports.humanize(this.diff) + "\x1B[0m");
|
|
2354
|
+
} else {
|
|
2355
|
+
args[0] = getDate() + name + " " + args[0];
|
|
2356
|
+
}
|
|
2357
|
+
}
|
|
2358
|
+
function getDate() {
|
|
2359
|
+
if (exports.inspectOpts.hideDate) {
|
|
2360
|
+
return "";
|
|
2361
|
+
}
|
|
2362
|
+
return new Date().toISOString() + " ";
|
|
2363
|
+
}
|
|
2364
|
+
function log(...args) {
|
|
2365
|
+
return process.stderr.write(util.format(...args) + `
|
|
2366
|
+
`);
|
|
2367
|
+
}
|
|
2368
|
+
function save(namespaces) {
|
|
2369
|
+
if (namespaces) {
|
|
2370
|
+
process.env.DEBUG = namespaces;
|
|
2371
|
+
} else {
|
|
2372
|
+
delete process.env.DEBUG;
|
|
2373
|
+
}
|
|
2374
|
+
}
|
|
2375
|
+
function load() {
|
|
2376
|
+
return process.env.DEBUG;
|
|
2377
|
+
}
|
|
2378
|
+
function init(debug) {
|
|
2379
|
+
debug.inspectOpts = {};
|
|
2380
|
+
const keys = Object.keys(exports.inspectOpts);
|
|
2381
|
+
for (let i = 0;i < keys.length; i++) {
|
|
2382
|
+
debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];
|
|
2383
|
+
}
|
|
2384
|
+
}
|
|
2377
2385
|
module.exports = require_common()(exports);
|
|
2378
2386
|
var { formatters } = module.exports;
|
|
2379
2387
|
formatters.o = function(v) {
|
|
2380
2388
|
this.inspectOpts.colors = this.useColors;
|
|
2381
|
-
return util.inspect(v, this.inspectOpts).split(
|
|
2389
|
+
return util.inspect(v, this.inspectOpts).split(`
|
|
2390
|
+
`).map((str) => str.trim()).join(" ");
|
|
2382
2391
|
};
|
|
2383
2392
|
formatters.O = function(v) {
|
|
2384
2393
|
this.inspectOpts.colors = this.useColors;
|
|
@@ -2386,7 +2395,7 @@ var require_node = __commonJS((exports, module) => {
|
|
|
2386
2395
|
};
|
|
2387
2396
|
});
|
|
2388
2397
|
|
|
2389
|
-
//
|
|
2398
|
+
// node_modules/debug/src/index.js
|
|
2390
2399
|
var require_src = __commonJS((exports, module) => {
|
|
2391
2400
|
if (typeof process === "undefined" || process.type === "renderer" || false || process.__nwjs) {
|
|
2392
2401
|
module.exports = require_browser();
|
|
@@ -2395,8 +2404,8 @@ var require_src = __commonJS((exports, module) => {
|
|
|
2395
2404
|
}
|
|
2396
2405
|
});
|
|
2397
2406
|
|
|
2398
|
-
//
|
|
2399
|
-
var
|
|
2407
|
+
// node_modules/commander/esm.mjs
|
|
2408
|
+
var import__ = __toESM(require_commander(), 1);
|
|
2400
2409
|
var {
|
|
2401
2410
|
program,
|
|
2402
2411
|
createCommand,
|
|
@@ -2409,9 +2418,9 @@ var {
|
|
|
2409
2418
|
Argument,
|
|
2410
2419
|
Option,
|
|
2411
2420
|
Help
|
|
2412
|
-
} =
|
|
2421
|
+
} = import__.default;
|
|
2413
2422
|
|
|
2414
|
-
//
|
|
2423
|
+
// lib/package.ts
|
|
2415
2424
|
import path from "path";
|
|
2416
2425
|
import fs from "fs";
|
|
2417
2426
|
function findPackageJson() {
|
|
@@ -2434,13 +2443,16 @@ async function getPackageJson() {
|
|
|
2434
2443
|
const packageJsonText = fs.readFileSync(packagePath, "utf8");
|
|
2435
2444
|
return JSON.parse(packageJsonText);
|
|
2436
2445
|
}
|
|
2446
|
+
var packageJsonPromise = getPackageJson();
|
|
2437
2447
|
async function getPackageVersion() {
|
|
2438
2448
|
const packageJson = await packageJsonPromise;
|
|
2439
2449
|
return packageJson.version;
|
|
2440
2450
|
}
|
|
2441
|
-
var packageJsonPromise = getPackageJson();
|
|
2442
2451
|
|
|
2443
|
-
//
|
|
2452
|
+
// lib/spawn.ts
|
|
2453
|
+
var defaultOptions = {
|
|
2454
|
+
expectQuiet: false
|
|
2455
|
+
};
|
|
2444
2456
|
async function spawn(args, options = defaultOptions) {
|
|
2445
2457
|
const proc = Bun.spawn(args, { stdout: "pipe", stderr: "pipe" });
|
|
2446
2458
|
const stdout = new Response(proc.stdout);
|
|
@@ -2461,11 +2473,8 @@ async function doCommand(args, options = defaultOptions) {
|
|
|
2461
2473
|
console.error(err);
|
|
2462
2474
|
return out;
|
|
2463
2475
|
}
|
|
2464
|
-
var defaultOptions = {
|
|
2465
|
-
expectQuiet: false
|
|
2466
|
-
};
|
|
2467
2476
|
|
|
2468
|
-
//
|
|
2477
|
+
// lib/git.ts
|
|
2469
2478
|
async function getConfig(key, options = defaultOptions) {
|
|
2470
2479
|
return doCommand(["git", "config", "--get", key], options);
|
|
2471
2480
|
}
|
|
@@ -2479,7 +2488,11 @@ async function getRemote() {
|
|
|
2479
2488
|
return doCommand(["git", "ls-remote", "--get-url", "origin"]);
|
|
2480
2489
|
}
|
|
2481
2490
|
|
|
2482
|
-
//
|
|
2491
|
+
// lib/gitlab/config.ts
|
|
2492
|
+
var gitEmailP = getConfig("user.email");
|
|
2493
|
+
var gitlabEmailP = getConfig("gitlab.user", { expectQuiet: true });
|
|
2494
|
+
var hostP = getConfig("gitlab.host");
|
|
2495
|
+
var tokenP = getConfig("gitlab.token");
|
|
2483
2496
|
async function getGitlabConfig() {
|
|
2484
2497
|
const host = await hostP || "gitlab.com";
|
|
2485
2498
|
const user = await gitEmailP || await gitlabEmailP;
|
|
@@ -2490,13 +2503,9 @@ async function getGitlabConfig() {
|
|
|
2490
2503
|
throw new Error("gitlab.token not in git config");
|
|
2491
2504
|
return { host, user, token };
|
|
2492
2505
|
}
|
|
2493
|
-
var gitEmailP = getConfig("user.email");
|
|
2494
|
-
var gitlabEmailP = getConfig("gitlab.user", { expectQuiet: true });
|
|
2495
|
-
var hostP = getConfig("gitlab.host");
|
|
2496
|
-
var tokenP = getConfig("gitlab.token");
|
|
2497
2506
|
|
|
2498
|
-
//
|
|
2499
|
-
|
|
2507
|
+
// lib/gitlab/api.ts
|
|
2508
|
+
function getNextLink(link) {
|
|
2500
2509
|
if (!link) {
|
|
2501
2510
|
return;
|
|
2502
2511
|
}
|
|
@@ -2504,7 +2513,7 @@ var getNextLink = function(link) {
|
|
|
2504
2513
|
const match = link.match(regex);
|
|
2505
2514
|
const next = match ? match[1] : undefined;
|
|
2506
2515
|
return next;
|
|
2507
|
-
}
|
|
2516
|
+
}
|
|
2508
2517
|
async function gitlabApi(endpoint) {
|
|
2509
2518
|
if (endpoint.startsWith("/")) {
|
|
2510
2519
|
console.warn(`gitlabApi: endpoint ${endpoint} starts with /, removing it`);
|
|
@@ -2538,14 +2547,14 @@ async function gitlabApi(endpoint) {
|
|
|
2538
2547
|
return result;
|
|
2539
2548
|
}
|
|
2540
2549
|
|
|
2541
|
-
//
|
|
2550
|
+
// lib/gitlab/project.ts
|
|
2542
2551
|
import path2 from "path";
|
|
2543
2552
|
|
|
2544
|
-
//
|
|
2553
|
+
// lib/gitlab/dlog.ts
|
|
2545
2554
|
var import_debug = __toESM(require_src(), 1);
|
|
2546
2555
|
var dlog = import_debug.default("gitlab");
|
|
2547
2556
|
|
|
2548
|
-
//
|
|
2557
|
+
// lib/gitlab/project.ts
|
|
2549
2558
|
async function getProjects(match) {
|
|
2550
2559
|
let search = "";
|
|
2551
2560
|
if (match) {
|
|
@@ -2577,7 +2586,7 @@ async function findProject(ssh_url) {
|
|
|
2577
2586
|
});
|
|
2578
2587
|
return project;
|
|
2579
2588
|
}
|
|
2580
|
-
async function
|
|
2589
|
+
async function projectScopedRequest(endpoint) {
|
|
2581
2590
|
if (endpoint.startsWith("/")) {
|
|
2582
2591
|
console.warn(`gitlabApi: endpoint ${endpoint} starts with /, removing it`);
|
|
2583
2592
|
endpoint = endpoint.slice(1);
|
|
@@ -2590,27 +2599,34 @@ async function projectScopedGet(endpoint) {
|
|
|
2590
2599
|
throw new Error(`Could not find project for remote ${remote}`);
|
|
2591
2600
|
}
|
|
2592
2601
|
const base = `https://${host}/api/v4/projects/${project.id}`;
|
|
2593
|
-
const
|
|
2594
|
-
|
|
2602
|
+
const sep = endpoint.includes("?") ? "&" : "?";
|
|
2603
|
+
const uri = `${base}/${endpoint}${sep}per_page=100`;
|
|
2604
|
+
dlog(`projectScopedRequest uri: ${uri}`);
|
|
2595
2605
|
const headers = new Headers;
|
|
2596
|
-
headers.append("Accept", "application/json");
|
|
2597
2606
|
headers.append("Private-Token", token);
|
|
2598
2607
|
const options = {
|
|
2599
2608
|
method,
|
|
2600
2609
|
headers
|
|
2601
2610
|
};
|
|
2602
2611
|
const request = new Request(uri, options);
|
|
2603
|
-
|
|
2612
|
+
return await fetch(request);
|
|
2613
|
+
}
|
|
2614
|
+
async function projectScopedGet(endpoint) {
|
|
2615
|
+
const response = await projectScopedRequest(endpoint);
|
|
2604
2616
|
return await response.json();
|
|
2605
2617
|
}
|
|
2618
|
+
async function projectScopedGetText(endpoint) {
|
|
2619
|
+
const response = await projectScopedRequest(endpoint);
|
|
2620
|
+
return await response.text();
|
|
2621
|
+
}
|
|
2606
2622
|
|
|
2607
|
-
//
|
|
2623
|
+
// lib/is_main.ts
|
|
2608
2624
|
import path3 from "path";
|
|
2609
|
-
|
|
2625
|
+
function justBase(filename) {
|
|
2610
2626
|
const ext = path3.extname(filename);
|
|
2611
2627
|
const base = path3.basename(filename, ext);
|
|
2612
2628
|
return base;
|
|
2613
|
-
}
|
|
2629
|
+
}
|
|
2614
2630
|
function isMain(self) {
|
|
2615
2631
|
const arg1 = Bun.argv[1];
|
|
2616
2632
|
const argv1Base = justBase(arg1);
|
|
@@ -2619,7 +2635,8 @@ function isMain(self) {
|
|
|
2619
2635
|
return result;
|
|
2620
2636
|
}
|
|
2621
2637
|
|
|
2622
|
-
//
|
|
2638
|
+
// bin/git-lab-project-list.ts
|
|
2639
|
+
var version = await getPackageVersion();
|
|
2623
2640
|
function create() {
|
|
2624
2641
|
const program2 = new Command;
|
|
2625
2642
|
program2.version(version).name("list").description("List projects for current user").option("-v, --verbose", "Verbose output").option("-m, --match <match>", "Match projects with paths containing <match>").action(async (options) => {
|
|
@@ -2640,56 +2657,314 @@ function create() {
|
|
|
2640
2657
|
});
|
|
2641
2658
|
return program2;
|
|
2642
2659
|
}
|
|
2643
|
-
var version = await getPackageVersion();
|
|
2644
2660
|
var git_lab_project_list_default = create;
|
|
2645
2661
|
if (isMain("git-lab-project-list")) {
|
|
2646
2662
|
await create().parseAsync(Bun.argv);
|
|
2647
2663
|
}
|
|
2664
|
+
// lib/gitlab/group.ts
|
|
2665
|
+
async function getGroups() {
|
|
2666
|
+
return await gitlabApi(`groups`);
|
|
2667
|
+
}
|
|
2668
|
+
// lib/gitlab/job.ts
|
|
2669
|
+
async function getPipelineJobs(pipelineId) {
|
|
2670
|
+
dlog(`getPipelineJobs pipelineId: ${pipelineId}`);
|
|
2671
|
+
return await projectScopedGet(`pipelines/${pipelineId}/jobs`);
|
|
2672
|
+
}
|
|
2673
|
+
async function getJob(jobId) {
|
|
2674
|
+
dlog(`getJob jobId: ${jobId}`);
|
|
2675
|
+
return await projectScopedGet(`jobs/${jobId}`);
|
|
2676
|
+
}
|
|
2677
|
+
async function getJobLog(jobId) {
|
|
2678
|
+
dlog(`getJobLog jobId: ${jobId}`);
|
|
2679
|
+
return await projectScopedGetText(`jobs/${jobId}/trace`);
|
|
2680
|
+
}
|
|
2681
|
+
// lib/gitlab/user.ts
|
|
2682
|
+
async function whoami() {
|
|
2683
|
+
return await gitlabApi("user");
|
|
2684
|
+
}
|
|
2648
2685
|
|
|
2649
|
-
//
|
|
2686
|
+
// lib/gitlab/merge-request.ts
|
|
2687
|
+
async function getMergeRequest(id) {
|
|
2688
|
+
return await projectScopedGet(`merge_requests/${id}`);
|
|
2689
|
+
}
|
|
2690
|
+
async function getMyMergeRequestsInProgress() {
|
|
2691
|
+
const me = await whoami();
|
|
2692
|
+
return await gitlabApi(`merge_requests?state=opened&author_id=${me.id}`);
|
|
2693
|
+
}
|
|
2694
|
+
async function getMyMergeRequestsToReview() {
|
|
2695
|
+
const me = await whoami();
|
|
2696
|
+
return await gitlabApi(`merge_requests?state=opened&reviewer_id=${me.id}`);
|
|
2697
|
+
}
|
|
2698
|
+
async function getMergeRequestsByBranch(projectPath, sourceBranch) {
|
|
2699
|
+
const project = encodeURIComponent(projectPath);
|
|
2700
|
+
const branch = encodeURIComponent(sourceBranch);
|
|
2701
|
+
return await gitlabApi(`projects/${project}/merge_requests?state=opened&source_branch=${branch}`);
|
|
2702
|
+
}
|
|
2703
|
+
// lib/gitlab/namespace.ts
|
|
2704
|
+
async function getNamespaces() {
|
|
2705
|
+
return await gitlabApi(`namespaces`);
|
|
2706
|
+
}
|
|
2707
|
+
// lib/gitlab/pipeline.ts
|
|
2708
|
+
async function getProjectPipelines(options) {
|
|
2709
|
+
const { days, status } = options;
|
|
2710
|
+
const me = await whoami();
|
|
2711
|
+
const username = me.username;
|
|
2712
|
+
const date = new Date;
|
|
2713
|
+
const pastDate = date.getDate() - days;
|
|
2714
|
+
date.setDate(pastDate);
|
|
2715
|
+
const updated = date.toISOString();
|
|
2716
|
+
dlog(`updated: ${updated}`);
|
|
2717
|
+
return await projectScopedGet(`pipelines?status=${status}&username=${username}&updated_after=${updated}`);
|
|
2718
|
+
}
|
|
2719
|
+
async function getMergeRequestPipelines(projectPath, mrIid) {
|
|
2720
|
+
const project = encodeURIComponent(projectPath);
|
|
2721
|
+
return await gitlabApi(`projects/${project}/merge_requests/${mrIid}/pipelines`);
|
|
2722
|
+
}
|
|
2723
|
+
async function getLatestPipeline() {
|
|
2724
|
+
const ref = await getCurrentBranch();
|
|
2725
|
+
dlog(`getLatestPipeline ref: ${ref}`);
|
|
2726
|
+
const pipelines = await projectScopedGet(`pipelines?ref=${encodeURIComponent(ref)}&per_page=1&order_by=id&sort=desc`);
|
|
2727
|
+
return pipelines.length > 0 ? pipelines[0] : undefined;
|
|
2728
|
+
}
|
|
2729
|
+
// bin/git-lab-project-mr-list.ts
|
|
2730
|
+
var version2 = await getPackageVersion();
|
|
2650
2731
|
function create2() {
|
|
2651
2732
|
const program2 = new Command;
|
|
2652
|
-
program2.version(version2).name("
|
|
2733
|
+
program2.version(version2).name("list").description("List open merge requests for a project and branch").option("-v, --verbose", "Verbose output").option("-p, --project <path>", "Project path (e.g. etagen-internal/eta-lib/base). Defaults to current directory remote.").option("-b, --branch <branch>", "Source branch to filter on. Defaults to current branch.").action(async (options) => {
|
|
2734
|
+
let projectPath = options.project;
|
|
2735
|
+
if (!projectPath) {
|
|
2736
|
+
const remote = await getRemote();
|
|
2737
|
+
const project2 = await findProject(remote);
|
|
2738
|
+
if (!project2) {
|
|
2739
|
+
console.error(`Could not resolve project from remote: ${remote}`);
|
|
2740
|
+
process.exit(1);
|
|
2741
|
+
}
|
|
2742
|
+
projectPath = project2.path_with_namespace;
|
|
2743
|
+
}
|
|
2744
|
+
const branch = options.branch || await getCurrentBranch();
|
|
2745
|
+
const mrs = await getMergeRequestsByBranch(projectPath, branch);
|
|
2746
|
+
if (!mrs.length) {
|
|
2747
|
+
console.error(`No open MRs for branch '${branch}' in ${projectPath}`);
|
|
2748
|
+
process.exit(0);
|
|
2749
|
+
}
|
|
2750
|
+
if (options.verbose) {
|
|
2751
|
+
console.log(mrs);
|
|
2752
|
+
} else {
|
|
2753
|
+
const filtered = mrs.map((m) => {
|
|
2754
|
+
const { iid, title, web_url, source_branch, target_branch, state, draft } = m;
|
|
2755
|
+
return { iid, title, web_url, source_branch, target_branch, state, draft };
|
|
2756
|
+
});
|
|
2757
|
+
console.log(filtered);
|
|
2758
|
+
}
|
|
2759
|
+
});
|
|
2760
|
+
return program2;
|
|
2761
|
+
}
|
|
2762
|
+
var git_lab_project_mr_list_default = create2;
|
|
2763
|
+
if (isMain("git-lab-project-mr-list")) {
|
|
2764
|
+
await create2().parseAsync(Bun.argv);
|
|
2765
|
+
}
|
|
2766
|
+
|
|
2767
|
+
// bin/git-lab-project-mr.ts
|
|
2768
|
+
var version3 = await getPackageVersion();
|
|
2769
|
+
function create3() {
|
|
2770
|
+
const program2 = new Command;
|
|
2771
|
+
program2.version(version3).name("mr").description("Commands for working with merge requests").addCommand(git_lab_project_mr_list_default()).action(() => program2.help());
|
|
2772
|
+
return program2;
|
|
2773
|
+
}
|
|
2774
|
+
var git_lab_project_mr_default = create3;
|
|
2775
|
+
if (isMain("git-lab-project-mr")) {
|
|
2776
|
+
await create3().parseAsync(Bun.argv);
|
|
2777
|
+
}
|
|
2778
|
+
|
|
2779
|
+
// bin/git-lab-project-pipeline-jobs.ts
|
|
2780
|
+
var version4 = await getPackageVersion();
|
|
2781
|
+
function create4() {
|
|
2782
|
+
const program2 = new Command;
|
|
2783
|
+
program2.version(version4).name("jobs").description("List jobs for a pipeline").requiredOption("-p, --pipeline <id>", "Pipeline ID").option("-v, --verbose", "Verbose output").action(async (options) => {
|
|
2784
|
+
const pipelineId = parseInt(options.pipeline, 10);
|
|
2785
|
+
if (isNaN(pipelineId)) {
|
|
2786
|
+
console.error(`Invalid pipeline ID: ${options.pipeline}`);
|
|
2787
|
+
process.exit(1);
|
|
2788
|
+
}
|
|
2789
|
+
const jobs = await getPipelineJobs(pipelineId);
|
|
2790
|
+
if (!jobs || jobs.length === 0) {
|
|
2791
|
+
console.error(`No jobs found for pipeline ${pipelineId}`);
|
|
2792
|
+
process.exit(1);
|
|
2793
|
+
}
|
|
2794
|
+
if (options.verbose) {
|
|
2795
|
+
console.log(JSON.stringify(jobs, null, 2));
|
|
2796
|
+
} else {
|
|
2797
|
+
const filtered = jobs.map((j) => {
|
|
2798
|
+
const { id, name, stage, status, duration, failure_reason } = j;
|
|
2799
|
+
return { id, name, stage, status, duration, failure_reason };
|
|
2800
|
+
});
|
|
2801
|
+
console.log(JSON.stringify(filtered, null, 2));
|
|
2802
|
+
}
|
|
2803
|
+
});
|
|
2804
|
+
return program2;
|
|
2805
|
+
}
|
|
2806
|
+
var git_lab_project_pipeline_jobs_default = create4;
|
|
2807
|
+
if (isMain("git-lab-project-pipeline-jobs")) {
|
|
2808
|
+
await create4().parseAsync(Bun.argv);
|
|
2809
|
+
}
|
|
2810
|
+
|
|
2811
|
+
// bin/git-lab-project-pipeline-latest.ts
|
|
2812
|
+
var version5 = await getPackageVersion();
|
|
2813
|
+
function create5() {
|
|
2814
|
+
const program2 = new Command;
|
|
2815
|
+
program2.version(version5).name("latest").description("Show jobs for the latest pipeline on the current branch").option("-v, --verbose", "Verbose output").action(async (options) => {
|
|
2816
|
+
const pipeline2 = await getLatestPipeline();
|
|
2817
|
+
if (!pipeline2) {
|
|
2818
|
+
console.error("No pipeline found for the current branch");
|
|
2819
|
+
process.exit(1);
|
|
2820
|
+
}
|
|
2821
|
+
const { id, status, ref, web_url } = pipeline2;
|
|
2822
|
+
console.log(JSON.stringify({ id, status, ref, web_url }, null, 2));
|
|
2823
|
+
const jobs = await getPipelineJobs(pipeline2.id);
|
|
2824
|
+
if (!jobs || jobs.length === 0) {
|
|
2825
|
+
console.error(`No jobs found for pipeline ${pipeline2.id}`);
|
|
2826
|
+
process.exit(1);
|
|
2827
|
+
}
|
|
2828
|
+
if (options.verbose) {
|
|
2829
|
+
console.log(JSON.stringify(jobs, null, 2));
|
|
2830
|
+
} else {
|
|
2831
|
+
const filtered = jobs.map((j) => {
|
|
2832
|
+
const { id: id2, name, stage, status: status2, duration, failure_reason } = j;
|
|
2833
|
+
return { id: id2, name, stage, status: status2, duration, failure_reason };
|
|
2834
|
+
});
|
|
2835
|
+
console.log(JSON.stringify(filtered, null, 2));
|
|
2836
|
+
}
|
|
2837
|
+
});
|
|
2838
|
+
return program2;
|
|
2839
|
+
}
|
|
2840
|
+
var git_lab_project_pipeline_latest_default = create5;
|
|
2841
|
+
if (isMain("git-lab-project-pipeline-latest")) {
|
|
2842
|
+
await create5().parseAsync(Bun.argv);
|
|
2843
|
+
}
|
|
2844
|
+
|
|
2845
|
+
// bin/git-lab-project-pipeline-list.ts
|
|
2846
|
+
var import_debug2 = __toESM(require_src(), 1);
|
|
2847
|
+
var version6 = await getPackageVersion();
|
|
2848
|
+
var dlog2 = import_debug2.default("git-lab-project-pipeline-list");
|
|
2849
|
+
function create6() {
|
|
2850
|
+
const program2 = new Command;
|
|
2851
|
+
program2.version(version6).name("list").description("List recent successful pipelines").option("-v, --verbose", "Verbose output").option("-d, --days <days>", "Number of days to look back", "7").option("-s, --status <status>", "Status of pipelines to list: success | runnning | ", "success").action(async (options) => {
|
|
2852
|
+
const pipelines = await getProjectPipelines(options);
|
|
2853
|
+
dlog2(`pipelines:`, pipelines);
|
|
2854
|
+
if (!pipelines) {
|
|
2855
|
+
console.error(`No pipelines!`);
|
|
2856
|
+
process.exit(1);
|
|
2857
|
+
}
|
|
2858
|
+
if (options.verbose) {
|
|
2859
|
+
console.log(pipelines);
|
|
2860
|
+
} else {
|
|
2861
|
+
let filtered = pipelines.map((p) => {
|
|
2862
|
+
const { id, web_url, updated_at, ref, sha } = p;
|
|
2863
|
+
return { id, web_url, updated_at, ref, sha };
|
|
2864
|
+
});
|
|
2865
|
+
console.log(filtered);
|
|
2866
|
+
}
|
|
2867
|
+
});
|
|
2868
|
+
return program2;
|
|
2869
|
+
}
|
|
2870
|
+
var git_lab_project_pipeline_list_default = create6;
|
|
2871
|
+
if (isMain("git-lab-project-pipeline-list")) {
|
|
2872
|
+
await create6().parseAsync(Bun.argv);
|
|
2873
|
+
}
|
|
2874
|
+
|
|
2875
|
+
// bin/git-lab-project-pipeline-log.ts
|
|
2876
|
+
var version7 = await getPackageVersion();
|
|
2877
|
+
function create7() {
|
|
2878
|
+
const program2 = new Command;
|
|
2879
|
+
program2.version(version7).name("log").description("Download a job log").requiredOption("-j, --job <id>", "Job ID").option("-t, --tail <lines>", "Show only the last N lines").action(async (options) => {
|
|
2880
|
+
const jobId = parseInt(options.job, 10);
|
|
2881
|
+
if (isNaN(jobId)) {
|
|
2882
|
+
console.error(`Invalid job ID: ${options.job}`);
|
|
2883
|
+
process.exit(1);
|
|
2884
|
+
}
|
|
2885
|
+
const log = await getJobLog(jobId);
|
|
2886
|
+
if (!log) {
|
|
2887
|
+
console.error(`No log output for job ${jobId}`);
|
|
2888
|
+
process.exit(1);
|
|
2889
|
+
}
|
|
2890
|
+
if (options.tail) {
|
|
2891
|
+
const n = parseInt(options.tail, 10);
|
|
2892
|
+
if (isNaN(n)) {
|
|
2893
|
+
console.error(`Invalid --tail value: ${options.tail}`);
|
|
2894
|
+
process.exit(1);
|
|
2895
|
+
}
|
|
2896
|
+
const lines = log.split(`
|
|
2897
|
+
`);
|
|
2898
|
+
const tail = lines.slice(-n);
|
|
2899
|
+
process.stdout.write(tail.join(`
|
|
2900
|
+
`));
|
|
2901
|
+
} else {
|
|
2902
|
+
process.stdout.write(log);
|
|
2903
|
+
}
|
|
2904
|
+
});
|
|
2905
|
+
return program2;
|
|
2906
|
+
}
|
|
2907
|
+
var git_lab_project_pipeline_log_default = create7;
|
|
2908
|
+
if (isMain("git-lab-project-pipeline-log")) {
|
|
2909
|
+
await create7().parseAsync(Bun.argv);
|
|
2910
|
+
}
|
|
2911
|
+
|
|
2912
|
+
// bin/git-lab-project-pipeline.ts
|
|
2913
|
+
var version8 = await getPackageVersion();
|
|
2914
|
+
function create8() {
|
|
2915
|
+
const program2 = new Command;
|
|
2916
|
+
program2.version(version8).name("pipeline").description("Commands for working with GitLab pipelines").addCommand(git_lab_project_pipeline_jobs_default()).addCommand(git_lab_project_pipeline_latest_default()).addCommand(git_lab_project_pipeline_list_default()).addCommand(git_lab_project_pipeline_log_default()).action(() => program2.help());
|
|
2917
|
+
return program2;
|
|
2918
|
+
}
|
|
2919
|
+
var git_lab_project_pipeline_default = create8;
|
|
2920
|
+
if (isMain("git-lab-project-pipeline")) {
|
|
2921
|
+
await create8().parseAsync(Bun.argv);
|
|
2922
|
+
}
|
|
2923
|
+
|
|
2924
|
+
// bin/git-lab-project-whereami.ts
|
|
2925
|
+
var version9 = await getPackageVersion();
|
|
2926
|
+
function create9() {
|
|
2927
|
+
const program2 = new Command;
|
|
2928
|
+
program2.version(version9).name("whereami").description("Show current project based on current directory").option("-v, --verbose", "Verbose output").action(async (options) => {
|
|
2653
2929
|
const ssh_url = await getRemote();
|
|
2654
2930
|
if (!ssh_url) {
|
|
2655
2931
|
console.error(`No remote!`);
|
|
2656
2932
|
process.exit(1);
|
|
2657
2933
|
}
|
|
2658
2934
|
console.log(`Remote: ${ssh_url}`);
|
|
2659
|
-
const
|
|
2660
|
-
if (!
|
|
2935
|
+
const project2 = await findProject(ssh_url);
|
|
2936
|
+
if (!project2) {
|
|
2661
2937
|
console.error(`No project!`);
|
|
2662
2938
|
process.exit(1);
|
|
2663
2939
|
}
|
|
2664
2940
|
if (options.verbose) {
|
|
2665
|
-
console.log(
|
|
2941
|
+
console.log(project2);
|
|
2666
2942
|
} else {
|
|
2667
|
-
const { id, name, path_with_namespace, ssh_url_to_repo } =
|
|
2943
|
+
const { id, name, path_with_namespace, ssh_url_to_repo } = project2;
|
|
2668
2944
|
console.log({ id, name, path_with_namespace, ssh_url_to_repo });
|
|
2669
2945
|
}
|
|
2670
2946
|
});
|
|
2671
2947
|
return program2;
|
|
2672
2948
|
}
|
|
2673
|
-
var
|
|
2674
|
-
var git_lab_project_whereami_default = create2;
|
|
2949
|
+
var git_lab_project_whereami_default = create9;
|
|
2675
2950
|
if (isMain("git-lab-project-whereami")) {
|
|
2676
|
-
await
|
|
2951
|
+
await create9().parseAsync(Bun.argv);
|
|
2677
2952
|
}
|
|
2678
2953
|
|
|
2679
|
-
//
|
|
2680
|
-
|
|
2954
|
+
// bin/git-lab-project.ts
|
|
2955
|
+
var version10 = await getPackageVersion();
|
|
2956
|
+
function create10() {
|
|
2681
2957
|
const program2 = new Command;
|
|
2682
|
-
program2.version(
|
|
2958
|
+
program2.version(version10).name("project").description("Commands for working with GitLab projects").addCommand(git_lab_project_list_default()).addCommand(git_lab_project_mr_default()).addCommand(git_lab_project_pipeline_default()).addCommand(git_lab_project_whereami_default()).action(() => {
|
|
2683
2959
|
program2.help();
|
|
2684
2960
|
});
|
|
2685
2961
|
return program2;
|
|
2686
2962
|
}
|
|
2687
|
-
var
|
|
2688
|
-
var git_lab_project_default = create3;
|
|
2963
|
+
var git_lab_project_default = create10;
|
|
2689
2964
|
if (isMain("git-lab-project")) {
|
|
2690
|
-
await
|
|
2965
|
+
await create10().parseAsync(Bun.argv);
|
|
2691
2966
|
}
|
|
2692
2967
|
export {
|
|
2693
2968
|
git_lab_project_default as default,
|
|
2694
|
-
|
|
2969
|
+
create10 as create
|
|
2695
2970
|
};
|