vh-dev-helper 0.0.0-stage → 1.0.1

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.
Files changed (83) hide show
  1. package/dist/app.d.ts +8 -0
  2. package/dist/app.js +22 -0
  3. package/dist/app.js.map +1 -0
  4. package/dist/bin/index.d.ts +2 -0
  5. package/dist/bin/index.js +9 -0
  6. package/dist/bin/index.js.map +1 -0
  7. package/dist/features/git/git.controller.d.ts +24 -0
  8. package/dist/features/git/git.controller.js +154 -0
  9. package/dist/features/git/git.controller.js.map +1 -0
  10. package/dist/features/git/git.route.d.ts +20 -0
  11. package/dist/features/git/git.route.js +132 -0
  12. package/dist/features/git/git.route.js.map +1 -0
  13. package/dist/features/git/git.service.d.ts +14 -0
  14. package/dist/features/git/git.service.js +342 -0
  15. package/dist/features/git/git.service.js.map +1 -0
  16. package/dist/shared/config/config.d.ts +1 -0
  17. package/dist/shared/config/config.js +3 -0
  18. package/dist/shared/config/config.js.map +1 -0
  19. package/dist/shared/config/config.types.d.ts +1 -0
  20. package/dist/shared/config/config.types.js +3 -0
  21. package/dist/shared/config/config.types.js.map +1 -0
  22. package/dist/shared/config/defaults.d.ts +1 -0
  23. package/dist/shared/config/defaults.js +3 -0
  24. package/dist/shared/config/defaults.js.map +1 -0
  25. package/dist/shared/constants/env.constants.d.ts +1 -0
  26. package/dist/shared/constants/env.constants.js +3 -0
  27. package/dist/shared/constants/env.constants.js.map +1 -0
  28. package/dist/shared/errors/base.error.d.ts +1 -0
  29. package/dist/shared/errors/base.error.js +3 -0
  30. package/dist/shared/errors/base.error.js.map +1 -0
  31. package/dist/shared/errors/cli.error.d.ts +1 -0
  32. package/dist/shared/errors/cli.error.js +3 -0
  33. package/dist/shared/errors/cli.error.js.map +1 -0
  34. package/dist/shared/errors/runtine.error.d.ts +1 -0
  35. package/dist/shared/errors/runtine.error.js +3 -0
  36. package/dist/shared/errors/runtine.error.js.map +1 -0
  37. package/dist/shared/events/event-bus.d.ts +1 -0
  38. package/dist/shared/events/event-bus.js +3 -0
  39. package/dist/shared/events/event-bus.js.map +1 -0
  40. package/dist/shared/events/events.types.d.ts +1 -0
  41. package/dist/shared/events/events.types.js +3 -0
  42. package/dist/shared/events/events.types.js.map +1 -0
  43. package/dist/shared/helpers/gitParsers/parser.controller.d.ts +26 -0
  44. package/dist/shared/helpers/gitParsers/parser.controller.js +169 -0
  45. package/dist/shared/helpers/gitParsers/parser.controller.js.map +1 -0
  46. package/dist/shared/helpers/gitParsers/parser.services.d.ts +29 -0
  47. package/dist/shared/helpers/gitParsers/parser.services.js +368 -0
  48. package/dist/shared/helpers/gitParsers/parser.services.js.map +1 -0
  49. package/dist/shared/helpers/gitParsers/parser.types.d.ts +83 -0
  50. package/dist/shared/helpers/gitParsers/parser.types.js +22 -0
  51. package/dist/shared/helpers/gitParsers/parser.types.js.map +1 -0
  52. package/dist/shared/helpers/logger/logger.d.ts +1 -0
  53. package/dist/shared/helpers/logger/logger.js +3 -0
  54. package/dist/shared/helpers/logger/logger.js.map +1 -0
  55. package/dist/shared/helpers/logger/logger.types.d.ts +1 -0
  56. package/dist/shared/helpers/logger/logger.types.js +3 -0
  57. package/dist/shared/helpers/logger/logger.types.js.map +1 -0
  58. package/dist/shared/helpers/output/index.d.ts +19 -0
  59. package/dist/shared/helpers/output/index.js +78 -0
  60. package/dist/shared/helpers/output/index.js.map +1 -0
  61. package/dist/shared/helpers/prompt/prompt.d.ts +11 -0
  62. package/dist/shared/helpers/prompt/prompt.js +81 -0
  63. package/dist/shared/helpers/prompt/prompt.js.map +1 -0
  64. package/dist/shared/helpers/prompt/prompt.types.d.ts +40 -0
  65. package/dist/shared/helpers/prompt/prompt.types.js +3 -0
  66. package/dist/shared/helpers/prompt/prompt.types.js.map +1 -0
  67. package/dist/shared/helpers/shell/exec.d.ts +15 -0
  68. package/dist/shared/helpers/shell/exec.js +30 -0
  69. package/dist/shared/helpers/shell/exec.js.map +1 -0
  70. package/dist/shared/helpers/shell/spawn.d.ts +1 -0
  71. package/dist/shared/helpers/shell/spawn.js +3 -0
  72. package/dist/shared/helpers/shell/spawn.js.map +1 -0
  73. package/dist/shared/types/common.types.d.ts +1 -0
  74. package/dist/shared/types/common.types.js +3 -0
  75. package/dist/shared/types/common.types.js.map +1 -0
  76. package/dist/shared/ui/stepProgress/index.d.ts +19 -0
  77. package/dist/shared/ui/stepProgress/index.js +100 -0
  78. package/dist/shared/ui/stepProgress/index.js.map +1 -0
  79. package/dist/shared/ui/writer/index.d.ts +6 -0
  80. package/dist/shared/ui/writer/index.js +36 -0
  81. package/dist/shared/ui/writer/index.js.map +1 -0
  82. package/package.json +49 -4
  83. package/README.md +0 -3
@@ -0,0 +1,342 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.gitCommandService = void 0;
7
+ const parser_controller_ts_1 = require("../../shared/helpers/gitParsers/parser.controller.js");
8
+ const index_ts_1 = require("../../shared/helpers/output/index.js");
9
+ const prompt_ts_1 = require("../../shared/helpers/prompt/prompt.js");
10
+ const exec_ts_1 = require("../../shared/helpers/shell/exec.js");
11
+ const enquirer_1 = __importDefault(require("enquirer"));
12
+ const enquirer = new enquirer_1.default();
13
+ class GitCommandServices {
14
+ async gitInit() {
15
+ return await (0, exec_ts_1.exec)("git init");
16
+ }
17
+ async gitStatus() {
18
+ return await (0, exec_ts_1.exec)("git status");
19
+ }
20
+ async gitAdd(auto = false) {
21
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
22
+ let result = {
23
+ stdout: "",
24
+ stderr: "",
25
+ durationMs: 0,
26
+ success: false,
27
+ command: "git add",
28
+ };
29
+ if (!isGitRepo) {
30
+ result.stderr = "Not a git repository";
31
+ return result;
32
+ }
33
+ const status = await parser_controller_ts_1.gitHelper.getStatus();
34
+ const currentBranch = status.currentBranch;
35
+ if (!currentBranch) {
36
+ result.stderr = "Unable to get current branch";
37
+ return result;
38
+ }
39
+ const stageableFiles = parser_controller_ts_1.gitHelper.getStageableFiles(status.files);
40
+ if (stageableFiles.length === 0) {
41
+ result.stdout = "Working tree is clean.";
42
+ result.success = true;
43
+ return result;
44
+ }
45
+ let files = [];
46
+ // if not auto ask for selection
47
+ if (!auto) {
48
+ files = await prompt_ts_1.prompt.multiselect({
49
+ message: "Select file to stage",
50
+ options: parser_controller_ts_1.gitHelper.getFileSelectOptions(stageableFiles),
51
+ initialValues: ["."],
52
+ });
53
+ if (files?.length == 0) {
54
+ result.stderr = "Please select valid option";
55
+ return result;
56
+ }
57
+ }
58
+ else {
59
+ files = ["."];
60
+ }
61
+ const selectAll = files?.includes(".");
62
+ // if not auto ask for confirmation
63
+ if (!auto) {
64
+ const confirmed = await prompt_ts_1.prompt.confirm({
65
+ message: selectAll
66
+ ? "Stage all changes?"
67
+ : `Stage "${files.join(", ")}"?`,
68
+ });
69
+ if (!confirmed) {
70
+ result.stderr = "Operation is canceled, exit...";
71
+ return result;
72
+ }
73
+ }
74
+ result = await (0, exec_ts_1.exec)(`git add ${files.join(" ")}`);
75
+ const target = selectAll ? "all changes" : files?.join(", ");
76
+ if (result.success) {
77
+ result.stdout = `${target} staged successfully.`;
78
+ return result;
79
+ }
80
+ return result;
81
+ }
82
+ async gitCommit(message, isFetch = false) {
83
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
84
+ const command = `git commit -m '${message}'`;
85
+ let result = {
86
+ stdout: "",
87
+ stderr: "",
88
+ durationMs: 0,
89
+ success: false,
90
+ command: command,
91
+ };
92
+ if (!isGitRepo) {
93
+ result.stderr = "Not a git repository";
94
+ return result;
95
+ }
96
+ const status = await parser_controller_ts_1.gitHelper.getStatus(isFetch);
97
+ const currentBranch = status.currentBranch;
98
+ const stageableFiles = parser_controller_ts_1.gitHelper.getStageableFiles(status.files);
99
+ await index_ts_1.output.currentBranch(currentBranch);
100
+ if (status.summary.staged == 0) {
101
+ const msg = stageableFiles?.length
102
+ ? `
103
+ No changes to commit,
104
+
105
+ Add files to stagging
106
+ ${stageableFiles?.map((item) => item?.path)?.join(", ")}
107
+ `
108
+ : "no changes to commit";
109
+ result.stdout = msg;
110
+ result.success = true;
111
+ return result;
112
+ }
113
+ if (!currentBranch) {
114
+ result.stderr = "Unable to get current branch";
115
+ return result;
116
+ }
117
+ result = await (0, exec_ts_1.exec)(command);
118
+ return result;
119
+ }
120
+ async gitPush(force) {
121
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
122
+ const command = (cmd) => {
123
+ if (force == "safe") {
124
+ return `git push ${cmd} '--force-with-lease'`;
125
+ }
126
+ else if (force == "unSafe") {
127
+ return `git push ${cmd} '--force'`;
128
+ }
129
+ else {
130
+ return `git push ${cmd}`;
131
+ }
132
+ };
133
+ let result = {
134
+ stdout: "",
135
+ stderr: "",
136
+ durationMs: 0,
137
+ success: false,
138
+ command: command(" "),
139
+ };
140
+ if (!isGitRepo) {
141
+ result.stderr = "Not a git repository";
142
+ return result;
143
+ }
144
+ const remotes = await parser_controller_ts_1.gitHelper.getRemotes();
145
+ const remote = remotes?.[0];
146
+ if (!remote) {
147
+ result.stderr = "Remote url not exist";
148
+ return result;
149
+ }
150
+ const status = await parser_controller_ts_1.gitHelper.getStatus();
151
+ const currentBranch = status.currentBranch;
152
+ if (!currentBranch) {
153
+ result.stderr = "Unable to get current branch";
154
+ return result;
155
+ }
156
+ if (currentBranch.detached) {
157
+ result.stderr = "Can not push in detached mode";
158
+ return result;
159
+ }
160
+ // if upstream exist then directly push it
161
+ if (currentBranch.upstream) {
162
+ await index_ts_1.output.info(`Upstream for '${currentBranch.current}' exist`);
163
+ return await (0, exec_ts_1.exec)(command(" "));
164
+ }
165
+ const remoteBranch = `${remote}/${currentBranch.current}`;
166
+ index_ts_1.output.info(`Upstream for ${currentBranch.current} not exist`);
167
+ index_ts_1.output.info(`Creating Upstream for ${currentBranch.current} to ${remoteBranch} `);
168
+ index_ts_1.output.info("Pushing to remote...");
169
+ return await (0, exec_ts_1.exec)(`git push --set-upstream ${remote} ${currentBranch.current}`);
170
+ }
171
+ async gitPull(inputBranch) {
172
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
173
+ const command = "git pull";
174
+ let result = {
175
+ stdout: "",
176
+ stderr: "",
177
+ durationMs: 0,
178
+ success: false,
179
+ command: command,
180
+ };
181
+ if (!isGitRepo) {
182
+ result.stderr = "Not a git repository";
183
+ return result;
184
+ }
185
+ const remotes = await parser_controller_ts_1.gitHelper.getRemotes();
186
+ const remote = remotes?.[0];
187
+ if (!remote) {
188
+ result.stderr = "Remote url not exist";
189
+ return result;
190
+ }
191
+ const status = await parser_controller_ts_1.gitHelper.getStatus(true);
192
+ const currentBranch = status.currentBranch;
193
+ await index_ts_1.output.currentBranch(currentBranch);
194
+ if (!status.summary.isClean) {
195
+ result.stderr = "Please commit local chages before pull";
196
+ return result;
197
+ }
198
+ if (!currentBranch) {
199
+ result.stderr = "Unable to get current branch";
200
+ return result;
201
+ }
202
+ if (currentBranch.detached) {
203
+ result.stderr = "Can not pull in detached mode";
204
+ return result;
205
+ }
206
+ // if input branch is available then use it and return
207
+ if (inputBranch) {
208
+ await index_ts_1.output.info(`Pulling from ${inputBranch} remote...`);
209
+ return await (0, exec_ts_1.exec)(`${command} '${remote}' '${inputBranch}'`);
210
+ }
211
+ // if upstream exist then directly pull it
212
+ if (currentBranch.upstream) {
213
+ await index_ts_1.output.info(`Upstream for '${currentBranch.current}' exist`);
214
+ return await (0, exec_ts_1.exec)(command);
215
+ }
216
+ result = await parser_controller_ts_1.gitHelper.ensureUpstream(currentBranch.current, remote);
217
+ if (!result.success) {
218
+ return result;
219
+ }
220
+ return await (0, exec_ts_1.exec)("git pull");
221
+ }
222
+ async gitCheckout(inputBranch, newBranch) {
223
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
224
+ const command = "git checkout";
225
+ let result = {
226
+ stdout: "",
227
+ stderr: "",
228
+ durationMs: 0,
229
+ success: false,
230
+ command: command,
231
+ };
232
+ if (!isGitRepo) {
233
+ result.stderr = "Not a git repository";
234
+ return result;
235
+ }
236
+ // if checkout with create new branch return early
237
+ if (newBranch) {
238
+ return await (0, exec_ts_1.exec)(`${command} -b '${inputBranch}'`);
239
+ }
240
+ // if checkout to existing branch return early
241
+ if (inputBranch) {
242
+ return await (0, exec_ts_1.exec)(`${command} '${inputBranch}'`);
243
+ }
244
+ const status = await parser_controller_ts_1.gitHelper.getStatus();
245
+ if (!status.summary.isClean) {
246
+ result.stderr = `
247
+ Local changes are present
248
+ commit local changes to continue
249
+ abort checkout
250
+ `;
251
+ return result;
252
+ }
253
+ const branchList = await parser_controller_ts_1.gitHelper.getBranches("all");
254
+ const localBranchNames = branchList
255
+ .filter((branch) => !branch.remote)
256
+ .map((branch) => branch.name);
257
+ const branchNames = branchList.map((branch) => branch.name);
258
+ const { branch } = await enquirer.prompt({
259
+ type: "autocomplete",
260
+ name: "branch",
261
+ message: "Select branch",
262
+ choices: ["create-new-branch", ...branchNames],
263
+ });
264
+ if (!branch) {
265
+ result.stderr = "select a valid branch";
266
+ return result;
267
+ }
268
+ const selectedBranch = branch;
269
+ const confirmed = await prompt_ts_1.prompt.confirm({
270
+ message: `confirm selection ${selectedBranch}`,
271
+ });
272
+ if (!confirmed) {
273
+ result.stderr = "Operation is canceled, exit...";
274
+ return result;
275
+ }
276
+ const remotes = await parser_controller_ts_1.gitHelper.getRemotes();
277
+ const remote = remotes?.[0];
278
+ // if remote branch selected
279
+ if (selectedBranch?.includes(remote)) {
280
+ const localBranch = selectedBranch.replace(`${remote}/`, "");
281
+ if (localBranchNames?.includes(localBranch)) {
282
+ await index_ts_1.output.info("local branch exist checkout");
283
+ return await (0, exec_ts_1.exec)(`${command} '${localBranch}'`);
284
+ }
285
+ await index_ts_1.output.info("local branch not exist");
286
+ await index_ts_1.output.info("creating local branch and start tracking");
287
+ return await (0, exec_ts_1.exec)(`git checkout --track ${branch}`);
288
+ }
289
+ // if local branch selected direclty checkout
290
+ if (selectedBranch != "create-new-branch") {
291
+ return (0, exec_ts_1.exec)(`${command} '${selectedBranch}'`);
292
+ }
293
+ // if create new branch selected
294
+ const userInput = await this.promptForNewBranch();
295
+ if (userInput.toLowerCase() == "exit") {
296
+ result.stdout = "Operation is canceled, exit...";
297
+ result.success = true;
298
+ return result;
299
+ }
300
+ return await (0, exec_ts_1.exec)(`${command} -b '${userInput}'`);
301
+ }
302
+ async gitBranch() {
303
+ const isGitRepo = await parser_controller_ts_1.gitHelper.isRepository();
304
+ const command = "git checkout";
305
+ let result = {
306
+ stdout: "",
307
+ stderr: "",
308
+ durationMs: 0,
309
+ success: false,
310
+ command: command,
311
+ };
312
+ if (!isGitRepo) {
313
+ result.stderr = "Not a git repository";
314
+ return result;
315
+ }
316
+ const status = await parser_controller_ts_1.gitHelper.getStatus();
317
+ const branchList = await parser_controller_ts_1.gitHelper.getBranches("all");
318
+ const branchNames = branchList.map((branch) => branch.name);
319
+ for (let name of branchNames) {
320
+ const isCurrent = status.currentBranch.current == name;
321
+ await index_ts_1.output.info(`${name} ${isCurrent ? " *" : ""}`, 8);
322
+ }
323
+ result.success = true;
324
+ result.stdout = "Branch listed successfully";
325
+ return result;
326
+ }
327
+ // small helpers
328
+ async promptForNewBranch() {
329
+ return prompt_ts_1.prompt.input({
330
+ message: "Branch name",
331
+ placeholder: "feature/login (Enter exit for cancel)",
332
+ validate(value) {
333
+ if (!value?.trim()) {
334
+ return "Branch name is required.";
335
+ }
336
+ return undefined;
337
+ },
338
+ });
339
+ }
340
+ }
341
+ exports.gitCommandService = new GitCommandServices();
342
+ //# sourceMappingURL=git.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.service.js","sourceRoot":"","sources":["../../../src/features/git/git.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/shared/config/config.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=config.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.types.js","sourceRoot":"","sources":["../../../src/shared/config/config.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/shared/config/defaults.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=env.constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.constants.js","sourceRoot":"","sources":["../../../src/shared/constants/env.constants.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=base.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.error.js","sourceRoot":"","sources":["../../../src/shared/errors/base.error.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=cli.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.error.js","sourceRoot":"","sources":["../../../src/shared/errors/cli.error.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=runtine.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtine.error.js","sourceRoot":"","sources":["../../../src/shared/errors/runtine.error.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=event-bus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../../src/shared/events/event-bus.ts"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=events.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.types.js","sourceRoot":"","sources":["../../../src/shared/events/events.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import { Option } from "@clack/prompts";
2
+ import { ExecResult } from "../shell/exec.ts";
3
+ import { GitBranch, GitChangedFile, GitCurrentBranch, GitStatus } from "./parser.types.ts";
4
+ export declare class GitParserController {
5
+ private lastFetchAt;
6
+ private readonly FETCH_TTL;
7
+ isRepository(): Promise<boolean>;
8
+ getRepositoryRoot(): Promise<string>;
9
+ getCurrentBranch(): Promise<string>;
10
+ getCurrentCommit(): Promise<string>;
11
+ getRemotes(): Promise<string[]>;
12
+ remoteBranchExists(branch: string, remote?: string): Promise<boolean>;
13
+ ensureUpstream(branch: string, remote?: string): Promise<ExecResult>;
14
+ getRemoteUrl(remote?: string): Promise<string>;
15
+ getBranches(type?: "all" | "local" | "remote" | "current"): Promise<GitBranch[]>;
16
+ getStatus(isFetch?: boolean): Promise<GitStatus>;
17
+ getFileIcon(file: GitChangedFile): string;
18
+ getFileStatus(file: GitChangedFile): string;
19
+ getFileLabel(file: GitChangedFile): string;
20
+ getFileHint(file: GitChangedFile): string;
21
+ getBranchLabel(branch: GitCurrentBranch): string;
22
+ getBranchHint(branch: GitCurrentBranch): string;
23
+ getFileSelectOptions(files: GitChangedFile[]): Option<string>[];
24
+ getStageableFiles(files: GitChangedFile[]): GitChangedFile[];
25
+ }
26
+ export declare const gitHelper: GitParserController;