@procedures/git 0.2.2 → 0.3.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.
Files changed (141) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +77 -12
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/module.d.ts.map +1 -1
  5. package/dist/module.js +312 -2
  6. package/dist/module.js.map +1 -1
  7. package/dist/procedures/git/blame.d.ts +17 -0
  8. package/dist/procedures/git/blame.d.ts.map +1 -0
  9. package/dist/procedures/git/blame.js +69 -0
  10. package/dist/procedures/git/blame.js.map +1 -0
  11. package/dist/procedures/git/branch/add.d.ts +12 -0
  12. package/dist/procedures/git/branch/add.d.ts.map +1 -0
  13. package/dist/procedures/git/branch/add.js +21 -0
  14. package/dist/procedures/git/branch/add.js.map +1 -0
  15. package/dist/procedures/git/branch/delete.d.ts +13 -0
  16. package/dist/procedures/git/branch/delete.d.ts.map +1 -0
  17. package/dist/procedures/git/branch/delete.js +24 -0
  18. package/dist/procedures/git/branch/delete.js.map +1 -0
  19. package/dist/procedures/git/branch/list.d.ts +13 -0
  20. package/dist/procedures/git/branch/list.d.ts.map +1 -0
  21. package/dist/procedures/git/branch/list.js +37 -0
  22. package/dist/procedures/git/branch/list.js.map +1 -0
  23. package/dist/procedures/git/branch.d.ts +8 -2
  24. package/dist/procedures/git/branch.d.ts.map +1 -1
  25. package/dist/procedures/git/branch.js +18 -37
  26. package/dist/procedures/git/branch.js.map +1 -1
  27. package/dist/procedures/git/commit.d.ts.map +1 -1
  28. package/dist/procedures/git/commit.js +9 -11
  29. package/dist/procedures/git/commit.js.map +1 -1
  30. package/dist/procedures/git/index.d.ts +19 -0
  31. package/dist/procedures/git/index.d.ts.map +1 -1
  32. package/dist/procedures/git/index.js +19 -0
  33. package/dist/procedures/git/index.js.map +1 -1
  34. package/dist/procedures/git/init.d.ts +6 -2
  35. package/dist/procedures/git/init.d.ts.map +1 -1
  36. package/dist/procedures/git/init.js +8 -4
  37. package/dist/procedures/git/init.js.map +1 -1
  38. package/dist/procedures/git/merge/abort.d.ts +14 -0
  39. package/dist/procedures/git/merge/abort.d.ts.map +1 -0
  40. package/dist/procedures/git/merge/abort.js +18 -0
  41. package/dist/procedures/git/merge/abort.js.map +1 -0
  42. package/dist/procedures/git/merge.d.ts +16 -0
  43. package/dist/procedures/git/merge.d.ts.map +1 -0
  44. package/dist/procedures/git/merge.js +41 -0
  45. package/dist/procedures/git/merge.js.map +1 -0
  46. package/dist/procedures/git/push.d.ts.map +1 -1
  47. package/dist/procedures/git/push.js +4 -2
  48. package/dist/procedures/git/push.js.map +1 -1
  49. package/dist/procedures/git/rebase/abort.d.ts +13 -0
  50. package/dist/procedures/git/rebase/abort.d.ts.map +1 -0
  51. package/dist/procedures/git/rebase/abort.js +17 -0
  52. package/dist/procedures/git/rebase/abort.js.map +1 -0
  53. package/dist/procedures/git/rebase/continue.d.ts +13 -0
  54. package/dist/procedures/git/rebase/continue.d.ts.map +1 -0
  55. package/dist/procedures/git/rebase/continue.js +23 -0
  56. package/dist/procedures/git/rebase/continue.js.map +1 -0
  57. package/dist/procedures/git/rebase.d.ts +22 -0
  58. package/dist/procedures/git/rebase.d.ts.map +1 -0
  59. package/dist/procedures/git/rebase.js +46 -0
  60. package/dist/procedures/git/rebase.js.map +1 -0
  61. package/dist/procedures/git/refs.d.ts +31 -0
  62. package/dist/procedures/git/refs.d.ts.map +1 -0
  63. package/dist/procedures/git/refs.js +52 -0
  64. package/dist/procedures/git/refs.js.map +1 -0
  65. package/dist/procedures/git/reset.d.ts +13 -0
  66. package/dist/procedures/git/reset.d.ts.map +1 -0
  67. package/dist/procedures/git/reset.js +31 -0
  68. package/dist/procedures/git/reset.js.map +1 -0
  69. package/dist/procedures/git/restore.d.ts +13 -0
  70. package/dist/procedures/git/restore.d.ts.map +1 -0
  71. package/dist/procedures/git/restore.js +26 -0
  72. package/dist/procedures/git/restore.js.map +1 -0
  73. package/dist/procedures/git/revParse.d.ts +13 -0
  74. package/dist/procedures/git/revParse.d.ts.map +1 -0
  75. package/dist/procedures/git/revParse.js +23 -0
  76. package/dist/procedures/git/revParse.js.map +1 -0
  77. package/dist/procedures/git/run.d.ts +2 -0
  78. package/dist/procedures/git/run.d.ts.map +1 -1
  79. package/dist/procedures/git/run.js +1 -0
  80. package/dist/procedures/git/run.js.map +1 -1
  81. package/dist/procedures/git/show.d.ts +15 -0
  82. package/dist/procedures/git/show.d.ts.map +1 -0
  83. package/dist/procedures/git/show.js +49 -0
  84. package/dist/procedures/git/show.js.map +1 -0
  85. package/dist/procedures/git/tag/add.d.ts +12 -0
  86. package/dist/procedures/git/tag/add.d.ts.map +1 -0
  87. package/dist/procedures/git/tag/add.js +25 -0
  88. package/dist/procedures/git/tag/add.js.map +1 -0
  89. package/dist/procedures/git/tag/delete.d.ts +12 -0
  90. package/dist/procedures/git/tag/delete.d.ts.map +1 -0
  91. package/dist/procedures/git/tag/delete.js +19 -0
  92. package/dist/procedures/git/tag/delete.js.map +1 -0
  93. package/dist/procedures/git/tag/list.d.ts +12 -0
  94. package/dist/procedures/git/tag/list.d.ts.map +1 -0
  95. package/dist/procedures/git/tag/list.js +34 -0
  96. package/dist/procedures/git/tag/list.js.map +1 -0
  97. package/dist/procedures/git/worktree/add.d.ts +13 -0
  98. package/dist/procedures/git/worktree/add.d.ts.map +1 -0
  99. package/dist/procedures/git/worktree/add.js +35 -0
  100. package/dist/procedures/git/worktree/add.js.map +1 -0
  101. package/dist/procedures/git/worktree/list.d.ts +17 -0
  102. package/dist/procedures/git/worktree/list.d.ts.map +1 -0
  103. package/dist/procedures/git/worktree/list.js +52 -0
  104. package/dist/procedures/git/worktree/list.js.map +1 -0
  105. package/dist/procedures/git/worktree/remove.d.ts +13 -0
  106. package/dist/procedures/git/worktree/remove.d.ts.map +1 -0
  107. package/dist/procedures/git/worktree/remove.js +20 -0
  108. package/dist/procedures/git/worktree/remove.js.map +1 -0
  109. package/dist/types.d.ts +308 -0
  110. package/dist/types.d.ts.map +1 -1
  111. package/dist/types.js +265 -0
  112. package/dist/types.js.map +1 -1
  113. package/package.json +4 -4
  114. package/src/module.ts +411 -2
  115. package/src/procedures/git/blame.ts +68 -0
  116. package/src/procedures/git/branch/add.ts +24 -0
  117. package/src/procedures/git/branch/delete.ts +29 -0
  118. package/src/procedures/git/branch/list.ts +40 -0
  119. package/src/procedures/git/branch.ts +19 -40
  120. package/src/procedures/git/commit.ts +9 -11
  121. package/src/procedures/git/index.ts +19 -0
  122. package/src/procedures/git/init.ts +11 -10
  123. package/src/procedures/git/merge/abort.ts +20 -0
  124. package/src/procedures/git/merge.ts +42 -0
  125. package/src/procedures/git/push.ts +4 -2
  126. package/src/procedures/git/rebase/abort.ts +19 -0
  127. package/src/procedures/git/rebase/continue.ts +25 -0
  128. package/src/procedures/git/rebase.ts +48 -0
  129. package/src/procedures/git/refs.ts +55 -0
  130. package/src/procedures/git/reset.ts +34 -0
  131. package/src/procedures/git/restore.ts +27 -0
  132. package/src/procedures/git/revParse.ts +24 -0
  133. package/src/procedures/git/run.ts +3 -0
  134. package/src/procedures/git/show.ts +57 -0
  135. package/src/procedures/git/tag/add.ts +27 -0
  136. package/src/procedures/git/tag/delete.ts +22 -0
  137. package/src/procedures/git/tag/list.ts +36 -0
  138. package/src/procedures/git/worktree/add.ts +35 -0
  139. package/src/procedures/git/worktree/list.ts +48 -0
  140. package/src/procedures/git/worktree/remove.ts +21 -0
  141. package/src/types.ts +623 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * git.rebase procedure
3
+ *
4
+ * Rebase the current branch on another branch (roadmap R40). The rebase is never interactive,
5
+ * and git does not start an editor.
6
+ *
7
+ * A rebase that stops on conflicts is a result, not an error: `conflict` is true, and
8
+ * `conflicts` names the files. Then resolve them, stage them with git.add and call
9
+ * git.rebase.continue, or call git.rebase.abort.
10
+ */
11
+ import { type GitContext, type GitRunOptions } from "./run.js";
12
+ import type { GitRebaseInput, GitRebaseOutput } from "../../types.js";
13
+ /**
14
+ * This function runs a step of a rebase (the start or `--continue`), and gives its result. A
15
+ * stop on conflicts gives `conflict: true`. Any other failure throws.
16
+ */
17
+ export declare function rebaseStep(args: string[], before: string, run: GitRunOptions): Promise<GitRebaseOutput>;
18
+ /**
19
+ * Rebase the current branch on another branch
20
+ */
21
+ export declare function gitRebase(input: GitRebaseInput, ctx?: GitContext): Promise<GitRebaseOutput>;
22
+ //# sourceMappingURL=rebase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/rebase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpE,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtE;;;GAGG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CAS7G;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAarG"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * git.rebase procedure
3
+ *
4
+ * Rebase the current branch on another branch (roadmap R40). The rebase is never interactive,
5
+ * and git does not start an editor.
6
+ *
7
+ * A rebase that stops on conflicts is a result, not an error: `conflict` is true, and
8
+ * `conflicts` names the files. Then resolve them, stage them with git.add and call
9
+ * git.rebase.continue, or call git.rebase.abort.
10
+ */
11
+ import { gitArg } from "./args.js";
12
+ import { git } from "./run.js";
13
+ import { commitOf, conflictedFiles, headHash, NO_EDITOR, stoppedOnConflict } from "./refs.js";
14
+ /**
15
+ * This function runs a step of a rebase (the start or `--continue`), and gives its result. A
16
+ * stop on conflicts gives `conflict: true`. Any other failure throws.
17
+ */
18
+ export async function rebaseStep(args, before, run) {
19
+ try {
20
+ await git(args, { ...run, env: NO_EDITOR });
21
+ }
22
+ catch (error) {
23
+ if (!stoppedOnConflict(error))
24
+ throw error;
25
+ return { hash: await headHash(run), completed: false, upToDate: false, conflict: true, conflicts: await conflictedFiles(run) };
26
+ }
27
+ const hash = await headHash(run);
28
+ return { hash, completed: true, upToDate: hash === before, conflict: false };
29
+ }
30
+ /**
31
+ * Rebase the current branch on another branch
32
+ */
33
+ export async function gitRebase(input, ctx = {}) {
34
+ const { upstream, onto, branch, cwd } = input;
35
+ const run = { cwd, signal: ctx.signal };
36
+ // With a branch, git checks it out first: compare with that branch
37
+ const before = branch ? await commitOf(branch, run) : await headHash(run);
38
+ const args = ["rebase"];
39
+ if (onto)
40
+ args.push("--onto", gitArg("onto", onto));
41
+ args.push(gitArg("upstream", upstream));
42
+ if (branch)
43
+ args.push(gitArg("branch", branch));
44
+ return rebaseStep(args, before, run);
45
+ }
46
+ //# sourceMappingURL=rebase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rebase.js","sourceRoot":"","sources":["../../../src/procedures/git/rebase.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAuC,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9F;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc,EAAE,MAAc,EAAE,GAAkB;IACjF,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;IACjI,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,KAAK,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC/E,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqB,EAAE,GAAG,GAAe,EAAE;IACzE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAExC,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxB,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACpD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxC,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IAEhD,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Helpers of the git procedures of roadmap R40: the current branch, the hash of a ref, the
3
+ * files with conflicts, and the stop of a merge or a rebase on conflicts.
4
+ */
5
+ import { type GitRunOptions } from "./run.js";
6
+ /**
7
+ * The current branch, or "HEAD" when HEAD is detached.
8
+ *
9
+ * `git rev-parse --abbrev-ref HEAD` fails in a repository without commits (roadmap R33), because
10
+ * HEAD names a branch that does not exist yet. `git symbolic-ref` reads the name that HEAD
11
+ * holds, so it works there too. It fails only for a detached HEAD.
12
+ */
13
+ export declare function currentBranch(run: GitRunOptions): Promise<string>;
14
+ /** The hash of the commit of a ref (a tag gives its commit). It throws a `GitError` for an unknown ref. */
15
+ export declare function commitOf(ref: string, run: GitRunOptions): Promise<string>;
16
+ /** The hash of HEAD. */
17
+ export declare function headHash(run: GitRunOptions): Promise<string>;
18
+ /** The files that have conflicts, as `git diff --diff-filter=U` gives them. */
19
+ export declare function conflictedFiles(run: GitRunOptions): Promise<string[]>;
20
+ /**
21
+ * True when a failed merge or rebase stopped on conflicts. Git writes "CONFLICT (content): ..."
22
+ * to stdout, and "could not apply" to stderr. Any other failure (a working tree with changes, an
23
+ * unknown ref) is an error of the call.
24
+ */
25
+ export declare function stoppedOnConflict(error: unknown): boolean;
26
+ /**
27
+ * The environment of a merge or a rebase. Git does not start an editor for a message: it keeps
28
+ * the message that it made. `GIT_EDITOR` overrides `core.editor` and `EDITOR` of the machine.
29
+ */
30
+ export declare const NO_EDITOR: Record<string, string>;
31
+ //# sourceMappingURL=refs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/refs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAA0B,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtE;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CASvE;AAED,2GAA2G;AAC3G,wBAAsB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAE/E;AAED,wBAAwB;AACxB,wBAAsB,QAAQ,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,+EAA+E;AAC/E,wBAAsB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE3E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;GAGG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA0B,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Helpers of the git procedures of roadmap R40: the current branch, the hash of a ref, the
3
+ * files with conflicts, and the stop of a merge or a rebase on conflicts.
4
+ */
5
+ import { gitArg } from "./args.js";
6
+ import { git, GitError, zFields } from "./run.js";
7
+ /**
8
+ * The current branch, or "HEAD" when HEAD is detached.
9
+ *
10
+ * `git rev-parse --abbrev-ref HEAD` fails in a repository without commits (roadmap R33), because
11
+ * HEAD names a branch that does not exist yet. `git symbolic-ref` reads the name that HEAD
12
+ * holds, so it works there too. It fails only for a detached HEAD.
13
+ */
14
+ export async function currentBranch(run) {
15
+ try {
16
+ return (await git(["symbolic-ref", "--quiet", "--short", "HEAD"], run)).trim();
17
+ }
18
+ catch (error) {
19
+ if (!(error instanceof GitError))
20
+ throw error;
21
+ // A detached HEAD: exit 1 and no message. Outside a repository: exit 128, and that is an error.
22
+ if (error.exitCode === 1)
23
+ return "HEAD";
24
+ throw error;
25
+ }
26
+ }
27
+ /** The hash of the commit of a ref (a tag gives its commit). It throws a `GitError` for an unknown ref. */
28
+ export async function commitOf(ref, run) {
29
+ return (await git(["rev-parse", "--verify", `${gitArg("ref", ref)}^{commit}`], run)).trim();
30
+ }
31
+ /** The hash of HEAD. */
32
+ export async function headHash(run) {
33
+ return (await git(["rev-parse", "--verify", "HEAD"], run)).trim();
34
+ }
35
+ /** The files that have conflicts, as `git diff --diff-filter=U` gives them. */
36
+ export async function conflictedFiles(run) {
37
+ return zFields(await git(["diff", "--name-only", "--diff-filter=U", "-z"], run));
38
+ }
39
+ /**
40
+ * True when a failed merge or rebase stopped on conflicts. Git writes "CONFLICT (content): ..."
41
+ * to stdout, and "could not apply" to stderr. Any other failure (a working tree with changes, an
42
+ * unknown ref) is an error of the call.
43
+ */
44
+ export function stoppedOnConflict(error) {
45
+ return error instanceof GitError && /^CONFLICT \(|could not apply/im.test(`${error.stdout}\n${error.stderr}`);
46
+ }
47
+ /**
48
+ * The environment of a merge or a rebase. Git does not start an editor for a message: it keeps
49
+ * the message that it made. `GIT_EDITOR` overrides `core.editor` and `EDITOR` of the machine.
50
+ */
51
+ export const NO_EDITOR = { GIT_EDITOR: "true" };
52
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../../src/procedures/git/refs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAsB,MAAM,UAAU,CAAC;AAEtE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,GAAkB;IACpD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;YAAE,MAAM,KAAK,CAAC;QAC9C,gGAAgG;QAChG,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACxC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,2GAA2G;AAC3G,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAW,EAAE,GAAkB;IAC5D,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC9F,CAAC;AAED,wBAAwB;AACxB,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,GAAkB;IAC/C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAkB;IACtD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACnF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,OAAO,KAAK,YAAY,QAAQ,IAAI,gCAAgC,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAChH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAA2B,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * git.reset procedure
3
+ *
4
+ * Move HEAD to a commit, and reset the index or the working tree (roadmap R40). The mode hard
5
+ * deletes the changes of the working tree that are not committed.
6
+ */
7
+ import { type GitContext } from "./run.js";
8
+ import type { GitResetInput, GitResetOutput } from "../../types.js";
9
+ /**
10
+ * Move HEAD to a commit, and reset the index or the working tree
11
+ */
12
+ export declare function gitReset(input: GitResetInput, ctx?: GitContext): Promise<GitResetOutput>;
13
+ //# sourceMappingURL=reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/reset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAkBlG"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * git.reset procedure
3
+ *
4
+ * Move HEAD to a commit, and reset the index or the working tree (roadmap R40). The mode hard
5
+ * deletes the changes of the working tree that are not committed.
6
+ */
7
+ import { gitArg } from "./args.js";
8
+ import { git } from "./run.js";
9
+ import { headHash } from "./refs.js";
10
+ /**
11
+ * Move HEAD to a commit, and reset the index or the working tree
12
+ */
13
+ export async function gitReset(input, ctx = {}) {
14
+ const ref = input.ref ?? "HEAD";
15
+ const mode = input.mode ?? "mixed";
16
+ const run = { cwd: input.cwd, signal: ctx.signal };
17
+ const args = ["reset", "--quiet"];
18
+ if (input.paths && input.paths.length > 0) {
19
+ // Git resets paths only in the index: HEAD and the working tree stay
20
+ if (mode !== "mixed") {
21
+ throw new Error(`git.reset: paths need the mode mixed, not ${mode}`);
22
+ }
23
+ args.push(gitArg("ref", ref), "--", ...input.paths);
24
+ }
25
+ else {
26
+ args.push(`--${mode}`, gitArg("ref", ref));
27
+ }
28
+ await git(args, run);
29
+ return { ref, mode, hash: await headHash(run) };
30
+ }
31
+ //# sourceMappingURL=reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/procedures/git/reset.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,KAAoB,EAAE,GAAG,GAAe,EAAE;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC;IACnC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAEnD,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,qEAAqE;QACrE,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6CAA6C,IAAI,EAAE,CAAC,CAAC;QACvE,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAErB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AAClD,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * git.restore procedure
3
+ *
4
+ * Restore files of the working tree or the index (roadmap R40). A restore of the working tree
5
+ * deletes the changes of the files that are not committed.
6
+ */
7
+ import { type GitContext } from "./run.js";
8
+ import type { GitRestoreInput, GitRestoreOutput } from "../../types.js";
9
+ /**
10
+ * Restore files of the working tree or the index
11
+ */
12
+ export declare function gitRestore(input: GitRestoreInput, ctx?: GitContext): Promise<GitRestoreOutput>;
13
+ //# sourceMappingURL=restore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/restore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAExE;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAYxG"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * git.restore procedure
3
+ *
4
+ * Restore files of the working tree or the index (roadmap R40). A restore of the working tree
5
+ * deletes the changes of the files that are not committed.
6
+ */
7
+ import { gitArg } from "./args.js";
8
+ import { git } from "./run.js";
9
+ /**
10
+ * Restore files of the working tree or the index
11
+ */
12
+ export async function gitRestore(input, ctx = {}) {
13
+ const { paths, source, staged, worktree, cwd } = input;
14
+ const args = ["restore"];
15
+ if (source)
16
+ args.push(`--source=${gitArg("source", source)}`);
17
+ if (staged)
18
+ args.push("--staged");
19
+ if (worktree)
20
+ args.push("--worktree");
21
+ // After "--", a path that starts with "-" stays a path
22
+ args.push("--", ...paths);
23
+ await git(args, { cwd, signal: ctx.signal });
24
+ return { restored: paths };
25
+ }
26
+ //# sourceMappingURL=restore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"restore.js","sourceRoot":"","sources":["../../../src/procedures/git/restore.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAGhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB,EAAE,GAAG,GAAe,EAAE;IAC3E,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAEvD,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;IACzB,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAC9D,IAAI,MAAM;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClC,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtC,uDAAuD;IACvD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,CAAC;IAC1B,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAE7C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * git.revParse procedure
3
+ *
4
+ * Give the hash or the name of a ref (roadmap R40). With `--verify`, git gives exactly one value,
5
+ * or fails for an unknown ref.
6
+ */
7
+ import { type GitContext } from "./run.js";
8
+ import type { GitRevParseInput, GitRevParseOutput } from "../../types.js";
9
+ /**
10
+ * Give the hash or the name of a ref
11
+ */
12
+ export declare function gitRevParse(input: GitRevParseInput, ctx?: GitContext): Promise<GitRevParseOutput>;
13
+ //# sourceMappingURL=revParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revParse.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/revParse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAE1E;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAS3G"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * git.revParse procedure
3
+ *
4
+ * Give the hash or the name of a ref (roadmap R40). With `--verify`, git gives exactly one value,
5
+ * or fails for an unknown ref.
6
+ */
7
+ import { gitArg } from "./args.js";
8
+ import { git } from "./run.js";
9
+ /**
10
+ * Give the hash or the name of a ref
11
+ */
12
+ export async function gitRevParse(input, ctx = {}) {
13
+ const ref = input.ref ?? "HEAD";
14
+ const args = ["rev-parse", "--verify"];
15
+ if (input.abbrevRef)
16
+ args.push("--abbrev-ref");
17
+ else if (input.short)
18
+ args.push("--short");
19
+ args.push(gitArg("ref", ref));
20
+ const value = (await git(args, { cwd: input.cwd, signal: ctx.signal })).trim();
21
+ return { ref, value };
22
+ }
23
+ //# sourceMappingURL=revParse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"revParse.js","sourceRoot":"","sources":["../../../src/procedures/git/revParse.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAGhD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB,EAAE,GAAG,GAAe,EAAE;IAC7E,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC;IAChC,MAAM,IAAI,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC1C,IAAI,KAAK,CAAC,KAAK;QAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACxB,CAAC"}
@@ -13,6 +13,8 @@ export interface GitRunOptions extends GitContext {
13
13
  cwd?: string | undefined;
14
14
  /** Text to write to the stdin of git (for example a patch for `git apply`). */
15
15
  input?: string | undefined;
16
+ /** Environment variables to add for git (for example `GIT_EDITOR`). */
17
+ env?: Record<string, string> | undefined;
16
18
  }
17
19
  /** A git command that ended with an exit code other than 0. */
18
20
  export declare class GitError extends Error {
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,+DAA+D;AAC/D,qBAAa,QAAS,SAAQ,KAAK;IAE/B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJzB,YACW,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAIxB;CACF;AAED;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuBtF;AAED,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhD"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,+EAA+E;IAC/E,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,uEAAuE;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;CAC1C;AAED,+DAA+D;AAC/D,qBAAa,QAAS,SAAQ,KAAK;IAE/B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAJzB,YACW,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EAIxB;CACF;AAED;;;GAGG;AACH,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBtF;AAED,4EAA4E;AAC5E,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhD"}
@@ -32,6 +32,7 @@ export async function git(args, options = {}) {
32
32
  cwd: options.cwd,
33
33
  signal: options.signal,
34
34
  input: options.input,
35
+ env: options.env,
35
36
  maxOutputBytes: GIT_MAX_BUFFER,
36
37
  });
37
38
  if (result.aborted) {
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/procedures/git/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAa3C,+DAA+D;AAC/D,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEtB,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IAJjB,YACW,IAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,MAAc;QAEvB,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAL9E,IAAI;wBACJ,QAAQ;sBACR,MAAM;sBACN,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,OAAO,GAAkB,EAAE;IACnE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;QACrC,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,mBAAmB,cAAc,QAAQ,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/procedures/git/run.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAe3C,+DAA+D;AAC/D,MAAM,OAAO,QAAS,SAAQ,KAAK;IAEtB,IAAI;IACJ,QAAQ;IACR,MAAM;IACN,MAAM;IAJjB,YACW,IAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,MAAc;QAEvB,KAAK,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iBAAiB,QAAQ,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAL9E,IAAI;wBACJ,QAAQ;sBACR,MAAM;sBACN,MAAM;QAGf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,IAAc,EAAE,OAAO,GAAkB,EAAE;IACnE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE;QACrC,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QACtD,KAAK,CAAC,IAAI,GAAG,YAAY,CAAC;QAC1B,MAAM,KAAK,CAAC;IACd,CAAC;IACD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,CAAC,CAAC,mBAAmB,cAAc,QAAQ,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,MAAM,CAAC,GAAG,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * git.show procedure
3
+ *
4
+ * Show a commit, or a file at a commit (roadmap R40).
5
+ *
6
+ * The procedure first resolves the ref to its commit, so a tag gives its commit and not the text
7
+ * of the tag object. A merge commit gives its changes against its first parent.
8
+ */
9
+ import { type GitContext } from "./run.js";
10
+ import type { GitShowInput, GitShowOutput } from "../../types.js";
11
+ /**
12
+ * Show a commit, or a file at a commit
13
+ */
14
+ export declare function gitShow(input: GitShowInput, ctx?: GitContext): Promise<GitShowOutput>;
15
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../../src/procedures/git/show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AAEhD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAKlE;;GAEG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAoC/F"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * git.show procedure
3
+ *
4
+ * Show a commit, or a file at a commit (roadmap R40).
5
+ *
6
+ * The procedure first resolves the ref to its commit, so a tag gives its commit and not the text
7
+ * of the tag object. A merge commit gives its changes against its first parent.
8
+ */
9
+ import { parseNumstat } from "./diff.js";
10
+ import { git } from "./run.js";
11
+ import { commitOf } from "./refs.js";
12
+ // Control characters that do not occur in a name, an email, a date or a subject
13
+ const FIELD = "\x1f";
14
+ /**
15
+ * Show a commit, or a file at a commit
16
+ */
17
+ export async function gitShow(input, ctx = {}) {
18
+ const ref = input.ref ?? "HEAD";
19
+ const run = { cwd: input.cwd, signal: ctx.signal };
20
+ const hash = await commitOf(ref, run);
21
+ // A file at the commit: `<hash>:<path>` starts with the hash, so a path that starts with "-"
22
+ // stays a path
23
+ if (input.path !== undefined) {
24
+ const content = await git(["show", `${hash}:${input.path}`], run);
25
+ return { ref, hash, path: input.path, content };
26
+ }
27
+ const format = `--format=${["%H", "%h", "%an", "%ae", "%ci", "%s", "%b"].join("%x1f")}`;
28
+ const [, shortHash = "", author = "", email = "", date = "", message = "", body = ""] = (await git(["show", "-s", format, hash], run)).split(FIELD);
29
+ const changes = ["show", "--format=", "--diff-merges=first-parent"];
30
+ const files = parseNumstat(await git([...changes, "--numstat", "-z", hash], run));
31
+ const result = {
32
+ ref,
33
+ hash,
34
+ shortHash,
35
+ author,
36
+ email,
37
+ date,
38
+ message,
39
+ body: body.replace(/\n+$/, ""),
40
+ files,
41
+ additions: files.reduce((sum, file) => sum + file.additions, 0),
42
+ deletions: files.reduce((sum, file) => sum + file.deletions, 0),
43
+ };
44
+ if (!input.stat) {
45
+ result.diff = (await git([...changes, "--patch", hash], run)).replace(/^\n/, "");
46
+ }
47
+ return result;
48
+ }
49
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../../src/procedures/git/show.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,GAAG,EAAmB,MAAM,UAAU,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,gFAAgF;AAChF,MAAM,KAAK,GAAG,MAAM,CAAC;AAErB;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAmB,EAAE,GAAG,GAAe,EAAE;IACrE,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC;IAChC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IACnD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAEtC,6FAA6F;IAC7F,eAAe;IACf,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;QAClE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACxF,MAAM,CAAC,EAAE,SAAS,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,CACtF,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAC7C,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAEf,MAAM,OAAO,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,4BAA4B,CAAC,CAAC;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAkB;QAC5B,GAAG;QACH,IAAI;QACJ,SAAS;QACT,MAAM;QACN,KAAK;QACL,IAAI;QACJ,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QAC9B,KAAK;QACL,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/D,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;KAChE,CAAC;IACF,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * git.tag.add procedure
3
+ *
4
+ * Make a tag (roadmap R40). An existing tag is an error: the procedure never moves a tag.
5
+ */
6
+ import { type GitContext } from "../run.js";
7
+ import type { GitTagAddInput, GitTagAddOutput } from "../../../types.js";
8
+ /**
9
+ * Make a tag
10
+ */
11
+ export declare function gitTagAdd(input: GitTagAddInput, ctx?: GitContext): Promise<GitTagAddOutput>;
12
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/procedures/git/tag/add.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzE;;GAEG;AACH,wBAAsB,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAYrG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * git.tag.add procedure
3
+ *
4
+ * Make a tag (roadmap R40). An existing tag is an error: the procedure never moves a tag.
5
+ */
6
+ import { gitArg } from "../args.js";
7
+ import { git } from "../run.js";
8
+ import { commitOf } from "../refs.js";
9
+ /**
10
+ * Make a tag
11
+ */
12
+ export async function gitTagAdd(input, ctx = {}) {
13
+ const { name, ref, message, cwd } = input;
14
+ const run = { cwd, signal: ctx.signal };
15
+ const args = ["tag"];
16
+ // With -m, git makes an annotated tag and does not start an editor
17
+ if (message !== undefined)
18
+ args.push("-a", "-m", message);
19
+ args.push(gitArg("name", name));
20
+ if (ref)
21
+ args.push(gitArg("ref", ref));
22
+ await git(args, run);
23
+ return { name, hash: await commitOf(`refs/tags/${name}`, run), annotated: message !== undefined };
24
+ }
25
+ //# sourceMappingURL=add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../../../src/procedures/git/tag/add.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAmB,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAqB,EAAE,GAAG,GAAe,EAAE;IACzE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAExC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;IACrB,mEAAmE;IACnE,IAAI,OAAO,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IAChC,IAAI,GAAG;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACvC,MAAM,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAErB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;AACpG,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * git.tag.delete procedure
3
+ *
4
+ * Delete a tag (roadmap R40).
5
+ */
6
+ import { type GitContext } from "../run.js";
7
+ import type { GitTagDeleteInput, GitTagDeleteOutput } from "../../../types.js";
8
+ /**
9
+ * Delete a tag
10
+ */
11
+ export declare function gitTagDelete(input: GitTagDeleteInput, ctx?: GitContext): Promise<GitTagDeleteOutput>;
12
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../../src/procedures/git/tag/delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE/E;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAQ9G"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * git.tag.delete procedure
3
+ *
4
+ * Delete a tag (roadmap R40).
5
+ */
6
+ import { gitArg } from "../args.js";
7
+ import { git } from "../run.js";
8
+ /**
9
+ * Delete a tag
10
+ */
11
+ export async function gitTagDelete(input, ctx = {}) {
12
+ const name = gitArg("name", input.name);
13
+ const run = { cwd: input.cwd, signal: ctx.signal };
14
+ // The object of the tag before the deletion: a tag object or a commit
15
+ const hash = (await git(["rev-parse", "--verify", `refs/tags/${name}`], run)).trim();
16
+ await git(["tag", "-d", name], run);
17
+ return { name, hash };
18
+ }
19
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../../src/procedures/git/tag/delete.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAmB,MAAM,WAAW,CAAC;AAGjD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAwB,EAAE,GAAG,GAAe,EAAE;IAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;IAEnD,sEAAsE;IACtE,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,aAAa,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrF,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACpC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * git.tag.list procedure
3
+ *
4
+ * List the tags (roadmap R40).
5
+ */
6
+ import { type GitContext } from "../run.js";
7
+ import type { GitTagListInput, GitTagListOutput } from "../../../types.js";
8
+ /**
9
+ * List the tags
10
+ */
11
+ export declare function gitTagList(input: GitTagListInput, ctx?: GitContext): Promise<GitTagListOutput>;
12
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/procedures/git/tag/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAc,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQvF;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAgBxG"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * git.tag.list procedure
3
+ *
4
+ * List the tags (roadmap R40).
5
+ */
6
+ import { gitArg } from "../args.js";
7
+ import { git } from "../run.js";
8
+ /**
9
+ * The fields of each tag, separated by NUL: the name, the type of the object, the commit of an
10
+ * annotated tag, the object, and the subject of the message.
11
+ */
12
+ const FORMAT = "--format=%(refname:strip=2)%00%(objecttype)%00%(*objectname)%00%(objectname)%00%(contents:subject)";
13
+ /**
14
+ * List the tags
15
+ */
16
+ export async function gitTagList(input, ctx = {}) {
17
+ const args = ["tag", "--list", FORMAT];
18
+ if (input.pattern)
19
+ args.push(gitArg("pattern", input.pattern));
20
+ const output = await git(args, { cwd: input.cwd, signal: ctx.signal });
21
+ const tags = output
22
+ .split("\n")
23
+ .filter((line) => line.length > 0)
24
+ .map((line) => {
25
+ const [name = "", type = "", peeled = "", object = "", subject = ""] = line.split("\0");
26
+ const annotated = type === "tag";
27
+ const tag = { name, hash: annotated && peeled ? peeled : object, annotated };
28
+ if (annotated)
29
+ tag.message = subject;
30
+ return tag;
31
+ });
32
+ return { tags };
33
+ }
34
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/procedures/git/tag/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,GAAG,EAAmB,MAAM,WAAW,CAAC;AAGjD;;;GAGG;AACH,MAAM,MAAM,GAAG,oGAAoG,CAAC;AAEpH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAsB,EAAE,GAAG,GAAe,EAAE;IAC3E,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvC,IAAI,KAAK,CAAC,OAAO;QAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IACvE,MAAM,IAAI,GAAiB,MAAM;SAC9B,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxF,MAAM,SAAS,GAAG,IAAI,KAAK,KAAK,CAAC;QACjC,MAAM,GAAG,GAAe,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;QACzF,IAAI,SAAS;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;QACrC,OAAO,GAAG,CAAC;IACb,CAAC,CAAC,CAAC;IACL,OAAO,EAAE,IAAI,EAAE,CAAC;AAClB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * git.worktree.add procedure
3
+ *
4
+ * Add a working tree (roadmap R40). Git refuses a folder that exists and is not empty. Without
5
+ * `ref`, `branch` and `detach`, git makes a branch with the name of the folder.
6
+ */
7
+ import { type GitContext } from "../run.js";
8
+ import type { GitWorktreeAddInput, GitWorktreeAddOutput } from "../../../types.js";
9
+ /**
10
+ * Add a working tree
11
+ */
12
+ export declare function gitWorktreeAdd(input: GitWorktreeAddInput, ctx?: GitContext): Promise<GitWorktreeAddOutput>;
13
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../../src/procedures/git/worktree/add.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAO,KAAK,UAAU,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEnF;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,EAAE,GAAG,GAAE,UAAe,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAkBpH"}