@scolladon/tsgit 2.0.1 → 3.1.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 (154) hide show
  1. package/README.md +14 -2
  2. package/dist/cjs/adapters/browser/index.cjs +1 -2
  3. package/dist/cjs/adapters/memory/index.cjs +1 -2
  4. package/dist/cjs/adapters/node/index.cjs +1 -2
  5. package/dist/cjs/chunks/adapter-detect-DW9fsw9d.cjs +1 -0
  6. package/dist/cjs/chunks/browser-http-transport-DGwW5YL7.cjs +1 -0
  7. package/dist/cjs/chunks/context-BcoAzPuU.cjs +0 -1
  8. package/dist/cjs/chunks/error-CfLWDui_.cjs +1 -0
  9. package/dist/cjs/chunks/index-Cy44GVR6.cjs +1 -0
  10. package/dist/cjs/chunks/inflate-CmCtM4-w.cjs +1 -0
  11. package/dist/cjs/chunks/lru-cache-1OU7JhD8.cjs +0 -1
  12. package/dist/cjs/chunks/memory-http-transport-CGriODcQ.cjs +1 -0
  13. package/dist/cjs/chunks/node-ssh-transport-PFu3ijfp.cjs +1 -0
  14. package/dist/cjs/chunks/{progress-CxU62NC1.cjs → progress-D8Dqbftk.cjs} +1 -2
  15. package/dist/cjs/chunks/readable-stream-MTA6D0Zh.cjs +0 -1
  16. package/dist/cjs/chunks/repository-Ci-BBxk0.cjs +1 -0
  17. package/dist/cjs/chunks/write-sparse-checkout-C1dsHCAD.cjs +1 -0
  18. package/dist/cjs/commands/index.cjs +1 -2
  19. package/dist/cjs/index.browser.cjs +1 -2
  20. package/dist/cjs/index.cjs +1 -2
  21. package/dist/cjs/index.default.cjs +1 -2
  22. package/dist/cjs/index.node.cjs +1 -2
  23. package/dist/cjs/operators/index.cjs +0 -1
  24. package/dist/cjs/primitives/index.cjs +1 -2
  25. package/dist/cjs/transport/index.cjs +0 -1
  26. package/dist/esm/adapters/browser/index.js +1 -2
  27. package/dist/esm/adapters/memory/index.js +1 -2
  28. package/dist/esm/adapters/node/index.js +1 -2
  29. package/dist/esm/chunks/adapter-detect-BkCMnjrI.js +1 -0
  30. package/dist/esm/chunks/browser-http-transport-CSxAte5h.js +1 -0
  31. package/dist/esm/chunks/context-CumKOV7K.js +0 -1
  32. package/dist/esm/chunks/error-BotOd-nD.js +1 -0
  33. package/dist/esm/chunks/index-DsvINN8n.js +1 -0
  34. package/dist/esm/chunks/inflate-BCIXqeeE.js +1 -0
  35. package/dist/esm/chunks/lru-cache-Cy7C7Lx2.js +0 -1
  36. package/dist/esm/chunks/memory-http-transport-caqmMGR1.js +1 -0
  37. package/dist/esm/chunks/node-ssh-transport-BgSv2IhT.js +1 -0
  38. package/dist/esm/chunks/{progress-BZobfl7p.js → progress-B_AJnOHx.js} +1 -2
  39. package/dist/esm/chunks/readable-stream-CGuf8k1J.js +0 -1
  40. package/dist/esm/chunks/repository-DyxknzvE.js +1 -0
  41. package/dist/esm/chunks/write-sparse-checkout-BwHbNKNS.js +1 -0
  42. package/dist/esm/commands/index.js +1 -2
  43. package/dist/esm/index.browser.js +1 -2
  44. package/dist/esm/index.default.js +1 -2
  45. package/dist/esm/index.js +1 -2
  46. package/dist/esm/index.node.js +1 -2
  47. package/dist/esm/operators/index.js +0 -1
  48. package/dist/esm/primitives/index.js +1 -2
  49. package/dist/esm/transport/index.js +0 -1
  50. package/dist/types/adapters/browser/index.d.cts +5 -3
  51. package/dist/types/adapters/browser/index.d.ts +5 -3
  52. package/dist/types/adapters/memory/index.d.cts +31 -4
  53. package/dist/types/adapters/memory/index.d.ts +31 -4
  54. package/dist/types/adapters/node/index.d.cts +146 -40
  55. package/dist/types/adapters/node/index.d.ts +146 -40
  56. package/dist/types/chunks/{context-YDw6qicq.d.cts → context-CF1YF2S8.d.cts} +165 -6
  57. package/dist/types/chunks/{context-CCL0_F8R.d.ts → context-sIhhtk2u.d.ts} +165 -6
  58. package/dist/types/chunks/{http-transport--_NdQOiw.d.cts → http-transport-DirKfK2S.d.cts} +1 -1
  59. package/dist/types/chunks/{http-transport--_NdQOiw.d.ts → http-transport-DirKfK2S.d.ts} +1 -1
  60. package/dist/types/chunks/index-B5Dps3fg.d.ts +2468 -0
  61. package/dist/types/chunks/index-B_A8VLaf.d.ts +1221 -0
  62. package/dist/types/chunks/index-Dfh8cvEs.d.cts +2468 -0
  63. package/dist/types/chunks/index-Dqxddhav.d.cts +1221 -0
  64. package/dist/types/chunks/progress-BjAKfkam.d.ts +1217 -0
  65. package/dist/types/chunks/progress-Ldnfb8st.d.cts +1217 -0
  66. package/dist/types/chunks/reflog-entry-Cqh3QrPH.d.ts +697 -0
  67. package/dist/types/chunks/reflog-entry-Dy-O27Dd.d.cts +697 -0
  68. package/dist/types/chunks/{repository-FoS_Laoy.d.ts → repository-D8QBTkEz.d.ts} +58 -20
  69. package/dist/types/chunks/{repository-BeifCqp0.d.cts → repository-D9YrVhcH.d.cts} +58 -20
  70. package/dist/types/commands/index.d.cts +4 -1259
  71. package/dist/types/commands/index.d.ts +4 -1259
  72. package/dist/types/index.browser.d.cts +7 -8
  73. package/dist/types/index.browser.d.ts +7 -8
  74. package/dist/types/index.d.cts +61 -124
  75. package/dist/types/index.d.ts +61 -124
  76. package/dist/types/index.default.d.cts +7 -8
  77. package/dist/types/index.default.d.ts +7 -8
  78. package/dist/types/index.node.d.cts +7 -8
  79. package/dist/types/index.node.d.ts +7 -8
  80. package/dist/types/primitives/index.d.cts +4 -692
  81. package/dist/types/primitives/index.d.ts +4 -692
  82. package/dist/types/transport/index.d.cts +1 -1
  83. package/dist/types/transport/index.d.ts +1 -1
  84. package/package.json +94 -28
  85. package/dist/cjs/adapters/browser/index.cjs.map +0 -1
  86. package/dist/cjs/adapters/memory/index.cjs.map +0 -1
  87. package/dist/cjs/adapters/node/index.cjs.map +0 -1
  88. package/dist/cjs/chunks/adapter-detect-CD_LcgaH.cjs +0 -2
  89. package/dist/cjs/chunks/adapter-detect-CD_LcgaH.cjs.map +0 -1
  90. package/dist/cjs/chunks/browser-http-transport-CiMRqtDS.cjs +0 -2
  91. package/dist/cjs/chunks/browser-http-transport-CiMRqtDS.cjs.map +0 -1
  92. package/dist/cjs/chunks/context-BcoAzPuU.cjs.map +0 -1
  93. package/dist/cjs/chunks/error-CfjFO3x_.cjs +0 -2
  94. package/dist/cjs/chunks/error-CfjFO3x_.cjs.map +0 -1
  95. package/dist/cjs/chunks/index-BWCq_5BJ.cjs +0 -2
  96. package/dist/cjs/chunks/index-BWCq_5BJ.cjs.map +0 -1
  97. package/dist/cjs/chunks/lru-cache-1OU7JhD8.cjs.map +0 -1
  98. package/dist/cjs/chunks/memory-http-transport-BVL6VgB-.cjs +0 -2
  99. package/dist/cjs/chunks/memory-http-transport-BVL6VgB-.cjs.map +0 -1
  100. package/dist/cjs/chunks/node-http-transport-BvfVcf02.cjs +0 -2
  101. package/dist/cjs/chunks/node-http-transport-BvfVcf02.cjs.map +0 -1
  102. package/dist/cjs/chunks/progress-CxU62NC1.cjs.map +0 -1
  103. package/dist/cjs/chunks/readable-stream-MTA6D0Zh.cjs.map +0 -1
  104. package/dist/cjs/chunks/repository-BEg2zNtx.cjs +0 -2
  105. package/dist/cjs/chunks/repository-BEg2zNtx.cjs.map +0 -1
  106. package/dist/cjs/chunks/walk-submodules-D2Sp7JEB.cjs +0 -2
  107. package/dist/cjs/chunks/walk-submodules-D2Sp7JEB.cjs.map +0 -1
  108. package/dist/cjs/commands/index.cjs.map +0 -1
  109. package/dist/cjs/index.browser.cjs.map +0 -1
  110. package/dist/cjs/index.cjs.map +0 -1
  111. package/dist/cjs/index.default.cjs.map +0 -1
  112. package/dist/cjs/index.node.cjs.map +0 -1
  113. package/dist/cjs/operators/index.cjs.map +0 -1
  114. package/dist/cjs/primitives/index.cjs.map +0 -1
  115. package/dist/cjs/transport/index.cjs.map +0 -1
  116. package/dist/esm/adapters/browser/index.js.map +0 -1
  117. package/dist/esm/adapters/memory/index.js.map +0 -1
  118. package/dist/esm/adapters/node/index.js.map +0 -1
  119. package/dist/esm/chunks/adapter-detect-DkZhhUhd.js +0 -2
  120. package/dist/esm/chunks/adapter-detect-DkZhhUhd.js.map +0 -1
  121. package/dist/esm/chunks/browser-http-transport-4rJkHcQu.js +0 -2
  122. package/dist/esm/chunks/browser-http-transport-4rJkHcQu.js.map +0 -1
  123. package/dist/esm/chunks/context-CumKOV7K.js.map +0 -1
  124. package/dist/esm/chunks/error-Dc-SRSJK.js +0 -2
  125. package/dist/esm/chunks/error-Dc-SRSJK.js.map +0 -1
  126. package/dist/esm/chunks/index-jH0UMhh-.js +0 -2
  127. package/dist/esm/chunks/index-jH0UMhh-.js.map +0 -1
  128. package/dist/esm/chunks/lru-cache-Cy7C7Lx2.js.map +0 -1
  129. package/dist/esm/chunks/memory-http-transport-CA1WxWBp.js +0 -2
  130. package/dist/esm/chunks/memory-http-transport-CA1WxWBp.js.map +0 -1
  131. package/dist/esm/chunks/node-http-transport-DPa2lK3T.js +0 -2
  132. package/dist/esm/chunks/node-http-transport-DPa2lK3T.js.map +0 -1
  133. package/dist/esm/chunks/progress-BZobfl7p.js.map +0 -1
  134. package/dist/esm/chunks/readable-stream-CGuf8k1J.js.map +0 -1
  135. package/dist/esm/chunks/repository-DF6ePd1x.js +0 -2
  136. package/dist/esm/chunks/repository-DF6ePd1x.js.map +0 -1
  137. package/dist/esm/chunks/walk-submodules-Dq9oGwP8.js +0 -2
  138. package/dist/esm/chunks/walk-submodules-Dq9oGwP8.js.map +0 -1
  139. package/dist/esm/commands/index.js.map +0 -1
  140. package/dist/esm/index.browser.js.map +0 -1
  141. package/dist/esm/index.default.js.map +0 -1
  142. package/dist/esm/index.js.map +0 -1
  143. package/dist/esm/index.node.js.map +0 -1
  144. package/dist/esm/operators/index.js.map +0 -1
  145. package/dist/esm/primitives/index.js.map +0 -1
  146. package/dist/esm/transport/index.js.map +0 -1
  147. package/dist/types/chunks/index-entry-DtEbVpOG.d.cts +0 -47
  148. package/dist/types/chunks/index-entry-UD4dvtKh.d.ts +0 -47
  149. package/dist/types/chunks/progress-7KKiXXfX.d.ts +0 -405
  150. package/dist/types/chunks/progress-By8yFaUE.d.cts +0 -405
  151. package/dist/types/chunks/reflog-entry-BbNnXCTC.d.cts +0 -368
  152. package/dist/types/chunks/reflog-entry-CSzjnZd4.d.ts +0 -368
  153. package/dist/types/chunks/write-tree-C3oNxOlX.d.cts +0 -196
  154. package/dist/types/chunks/write-tree-DRI-LzSr.d.ts +0 -196
@@ -1,1259 +1,4 @@
1
- import { O as ObjectId, j as RefName, b as Context, c as FilePath, n as PromisorRemote } from '../chunks/context-CCL0_F8R.js';
2
- import { C as CatFileBatchEntry, A as AuthorIdentity, c as ConfigKey, b as ConfigScope, T as TreeDiff, R as ReflogEntry, S as SubmoduleEntry } from '../chunks/reflog-entry-CSzjnZd4.js';
3
- import '../chunks/http-transport--_NdQOiw.js';
4
-
5
- interface AbortMergeResult {
6
- /** The commit `ORIG_HEAD` recorded; HEAD now points at this id. */
7
- readonly origHead: ObjectId;
8
- /** The branch HEAD is on (always defined — detached merges are rejected upstream). */
9
- readonly branch: RefName;
10
- }
11
- /**
12
- * Abort a conflicting merge. Restores the working tree, index, and branch
13
- * ref to `ORIG_HEAD`, then clears `MERGE_HEAD` and `MERGE_MSG`. `ORIG_HEAD`
14
- * is preserved on disk as a cross-operation recovery aid (ADR-173).
15
- *
16
- * Refuses when no merge is in progress (`MERGE_HEAD` absent) or when the
17
- * merge state is incomplete (`ORIG_HEAD` absent — corrupt half-state).
18
- *
19
- * The hard-reset machinery is inlined rather than delegated to `reset` so
20
- * the call can bypass `assertNoPendingOperation` (which would itself
21
- * fire on the very `MERGE_HEAD` we're about to clear). See ADR-170.
22
- */
23
- declare const abortMerge: (ctx: Context) => Promise<AbortMergeResult>;
24
-
25
- interface AddOptions {
26
- readonly force?: boolean;
27
- readonly all?: boolean;
28
- readonly breakStaleLockMs?: number;
29
- }
30
- interface AddResult {
31
- readonly added: ReadonlyArray<FilePath>;
32
- readonly modified: ReadonlyArray<FilePath>;
33
- readonly removed: ReadonlyArray<FilePath>;
34
- }
35
- /**
36
- * Stage paths in the index. Two modes:
37
- *
38
- * - **Literal-path mode** (`paths` non-empty, `all` falsy): every path is
39
- * validated, read, hashed, and staged. Missing paths reject the whole call.
40
- * - **Bulk mode** (`paths` empty, `all === true`): walk the working tree,
41
- * stage every modified/new tracked file plus every untracked, non-ignored
42
- * file. Files missing from disk but present in the prior index land in
43
- * `removed`. `.git` and embedded repositories are skipped.
44
- *
45
- * Both modes acquire `.git/index.lock` once, read the existing index under
46
- * the lock, and commit a single replacement — no partial writes.
47
- */
48
- declare const add: (ctx: Context, paths: ReadonlyArray<string>, opts?: AddOptions) => Promise<AddResult>;
49
-
50
- interface BranchInfo {
51
- readonly name: RefName;
52
- readonly id: ObjectId;
53
- readonly current: boolean;
54
- }
55
- interface BranchListResult {
56
- readonly branches: ReadonlyArray<BranchInfo>;
57
- }
58
- interface BranchCreateInput {
59
- readonly name: string;
60
- readonly startPoint?: string;
61
- readonly force?: boolean;
62
- }
63
- interface BranchCreateResult {
64
- readonly name: RefName;
65
- readonly id: ObjectId;
66
- }
67
- interface BranchDeleteInput {
68
- readonly name: string;
69
- readonly force?: boolean;
70
- }
71
- interface BranchDeleteResult {
72
- readonly name: RefName;
73
- }
74
- interface BranchRenameInput {
75
- readonly from: string;
76
- readonly to: string;
77
- readonly force?: boolean;
78
- }
79
- interface BranchRenameResult {
80
- readonly from: RefName;
81
- readonly to: RefName;
82
- }
83
- declare const branchList: (ctx: Context) => Promise<BranchListResult>;
84
- declare const branchCreate: (ctx: Context, input: BranchCreateInput) => Promise<BranchCreateResult>;
85
- declare const branchDelete: (ctx: Context, input: BranchDeleteInput) => Promise<BranchDeleteResult>;
86
- declare const branchRename: (ctx: Context, input: BranchRenameInput) => Promise<BranchRenameResult>;
87
-
88
- type ConflictType = 'content' | 'add-add' | 'modify-delete' | 'type-change' | 'rename-rename' | 'gitlink' | 'binary';
89
-
90
- interface PatchPathPrefix {
91
- readonly old: string;
92
- readonly new: string;
93
- }
94
-
95
- /**
96
- * Tier-1 `catFile` command — wraps the streaming `catFileBatch` primitive in
97
- * a request/response shape matching the other v2 commands (`submodules`,
98
- * `log`, `reflog`). String ids are coerced at the boundary via
99
- * `ObjectId.from`, which throws `INVALID_OBJECT_ID` on malformed input
100
- * before any read happens.
101
- *
102
- * For streaming use cases, callers reach for `repo.primitives.catFileBatch`
103
- * directly — see `docs/design/cat-file-batch.md` §2.
104
- */
105
-
106
- interface CatFileInput {
107
- readonly ids: ReadonlyArray<ObjectId | string>;
108
- /** Per-object byte cap; forwarded to the underlying `readObject` call. */
109
- readonly maxBytes?: number;
110
- }
111
- interface CatFileResult {
112
- readonly kind: 'batch';
113
- readonly entries: ReadonlyArray<CatFileBatchEntry>;
114
- }
115
- declare const catFile: (ctx: Context, opts: CatFileInput) => Promise<CatFileResult>;
116
-
117
- interface CheckoutSwitchOptions {
118
- readonly target: string;
119
- readonly detach?: boolean;
120
- readonly force?: boolean;
121
- }
122
- interface CheckoutPathsOptions {
123
- readonly paths: ReadonlyArray<string>;
124
- readonly source?: 'index' | 'HEAD' | ObjectId;
125
- }
126
- type CheckoutOptions = CheckoutSwitchOptions | CheckoutPathsOptions;
127
- interface CheckoutResult {
128
- readonly branch: RefName | undefined;
129
- readonly id: ObjectId;
130
- readonly detached: boolean;
131
- readonly changedPaths: number;
132
- }
133
- declare const checkout: (ctx: Context, opts: CheckoutOptions) => Promise<CheckoutResult>;
134
-
135
- interface CherryPickRunInput {
136
- /** Revisions to pick, in argument order — a commit-ish or an `A..B` range each. */
137
- readonly commits: ReadonlyArray<string>;
138
- /** -x: append `(cherry picked from commit <oid>)` to each commit message. */
139
- readonly recordOrigin?: boolean;
140
- /** --allow-empty: a redundant pick creates an empty commit instead of stopping. */
141
- readonly allowEmpty?: boolean;
142
- /** -n / --no-commit: apply each pick to the index + working tree only; never
143
- * commit, never persist CHERRY_PICK_HEAD / sequencer state. */
144
- readonly noCommit?: boolean;
145
- }
146
- interface CherryPickedCommit {
147
- readonly source: ObjectId;
148
- readonly created: ObjectId;
149
- }
150
- interface CherryPickConflict {
151
- readonly path: FilePath;
152
- readonly type: ConflictType;
153
- }
154
- type CherryPickResult = {
155
- readonly kind: 'picked';
156
- readonly commits: ReadonlyArray<CherryPickedCommit>;
157
- } | {
158
- readonly kind: 'no-commit';
159
- readonly sources: ReadonlyArray<ObjectId>;
160
- } | {
161
- readonly kind: 'conflict';
162
- readonly commit: ObjectId;
163
- readonly conflicts: ReadonlyArray<CherryPickConflict>;
164
- readonly remaining: number;
165
- } | {
166
- readonly kind: 'empty';
167
- readonly commit: ObjectId;
168
- readonly remaining: number;
169
- };
170
- declare const cherryPickRun: (ctx: Context, input: CherryPickRunInput) => Promise<CherryPickResult>;
171
- interface CherryPickContinueInput {
172
- /** --allow-empty: finalise a resolution that yields no change as an empty commit. */
173
- readonly allowEmpty?: boolean;
174
- }
175
- /**
176
- * Finalise the in-progress conflicted pick as a single-parent commit from the
177
- * resolved index, then resume any remaining sequencer picks. Refuses when nothing
178
- * is in progress or the index is unmerged. A no-change resolution re-stops empty.
179
- */
180
- declare const cherryPickContinue: (ctx: Context, input?: CherryPickContinueInput) => Promise<CherryPickResult>;
181
- interface CherryPickAbortResult {
182
- readonly head: ObjectId;
183
- readonly branch: RefName;
184
- }
185
- /**
186
- * Drop the in-progress pick: hard-reset to HEAD (discarding its half-applied
187
- * state), then resume the remaining sequencer picks (if any).
188
- */
189
- declare const cherryPickSkip: (ctx: Context, input?: CherryPickContinueInput) => Promise<CherryPickResult>;
190
- /**
191
- * Abort the cherry-pick: hard-reset the working tree, index, and branch to the
192
- * pre-sequence HEAD (sequencer `head`, or the current HEAD for a lone pick), and
193
- * clear all state. The branch update records git's faithful
194
- * `reset: moving to <oid>` reflog. Refuses when nothing is in progress.
195
- */
196
- declare const cherryPickAbort: (ctx: Context) => Promise<CherryPickAbortResult>;
197
-
198
- /** Pluggable DNS resolver. Returns the addresses for `host`, in order. */
199
- type DnsResolver = (host: string) => Promise<ReadonlyArray<string>>;
200
-
201
- interface CloneOptions {
202
- readonly url: string;
203
- readonly bare?: boolean;
204
- readonly initialBranch?: string;
205
- /**
206
- * Shallow clone depth. When set, sends `deepen N` and persists the
207
- * resulting shallow boundaries to `.git/shallow`.
208
- */
209
- readonly depth?: number;
210
- /** DNS resolver injected by the caller; required to enforce SSRF guards. */
211
- readonly resolver?: DnsResolver;
212
- readonly allowInsecure?: boolean;
213
- readonly allowPrivateNetworks?: boolean;
214
- /**
215
- * Partial-clone object filter (`blob:none`, `blob:limit=<n>`, `tree:<n>`).
216
- * When set, the server omits the filtered objects, a promisor remote is
217
- * recorded in `.git/config`, and omitted objects are lazy-fetched on read.
218
- */
219
- readonly filter?: string;
220
- }
221
- interface CloneResult {
222
- readonly path: FilePath;
223
- readonly head: RefName | undefined;
224
- readonly fetchedRefs: ReadonlyArray<{
225
- readonly name: RefName;
226
- readonly id: ObjectId;
227
- }>;
228
- }
229
- declare const clone: (ctx: Context, opts: CloneOptions) => Promise<CloneResult>;
230
-
231
- interface CommitOptions {
232
- readonly message: string;
233
- readonly author?: AuthorIdentity;
234
- readonly committer?: AuthorIdentity;
235
- readonly allowEmpty?: boolean;
236
- readonly allowEmptyMessage?: boolean;
237
- /** Skip the `pre-commit` and `commit-msg` hooks (git's `--no-verify`). */
238
- readonly noVerify?: boolean;
239
- }
240
- interface CommitResult {
241
- readonly id: ObjectId;
242
- readonly tree: ObjectId;
243
- readonly branch: RefName | undefined;
244
- readonly parents: ReadonlyArray<ObjectId>;
245
- }
246
- /**
247
- * Create a new commit from the current index. Resolves author/committer from
248
- * options or `.git/config` `[user]`, writes a tree from the index, builds the
249
- * commit object, and updates HEAD's target ref (or detached HEAD itself).
250
- *
251
- * Throws `NOTHING_TO_COMMIT` when the new tree matches the parent's tree and
252
- * `allowEmpty` is not set; `EMPTY_COMMIT_MESSAGE` when the message is blank
253
- * and `allowEmptyMessage` is not set.
254
- */
255
- declare const commit: (ctx: Context, opts: CommitOptions) => Promise<CommitResult>;
256
-
257
- /**
258
- * `repo.config.*` porcelain — nested-namespace shape per ADR-181. The methods
259
- * exported here are the Context-aware functions the namespace dispatcher in
260
- * `repository.ts` binds; `repo.config.get(input)` is roughly
261
- * `configGet(repo.ctx, input)`.
262
- *
263
- * Each command:
264
- * 1. asserts the context targets a repository,
265
- * 2. parses + validates inputs at the command boundary,
266
- * 3. composes the slice-7 readers / slice-8/9 writers,
267
- * 4. returns a typed result envelope (per-action shape, no discriminator).
268
- */
269
-
270
- interface ConfigGetInput {
271
- readonly key: string;
272
- readonly scope?: ConfigScope;
273
- }
274
- type ConfigGetResult = {
275
- readonly key: ConfigKey;
276
- readonly value: string;
277
- readonly scope: ConfigScope;
278
- } | {
279
- readonly key: ConfigKey;
280
- readonly value: undefined;
281
- };
282
- declare const configGet: (ctx: Context, input: ConfigGetInput) => Promise<ConfigGetResult>;
283
- interface ConfigGetAllInput {
284
- readonly key: string;
285
- readonly scope?: ConfigScope;
286
- }
287
- interface ConfigGetAllResult {
288
- readonly key: ConfigKey;
289
- readonly values: ReadonlyArray<{
290
- readonly value: string;
291
- readonly scope: ConfigScope;
292
- }>;
293
- }
294
- declare const configGetAll: (ctx: Context, input: ConfigGetAllInput) => Promise<ConfigGetAllResult>;
295
- interface ConfigGetRegexpInput {
296
- readonly keyPattern: RegExp;
297
- readonly valuePattern?: RegExp;
298
- readonly scope?: ConfigScope;
299
- }
300
- interface ConfigEntryView {
301
- readonly key: ConfigKey;
302
- readonly value: string;
303
- readonly scope: ConfigScope;
304
- }
305
- interface ConfigGetRegexpResult {
306
- readonly entries: ReadonlyArray<ConfigEntryView>;
307
- }
308
- declare const configGetRegexp: (ctx: Context, input: ConfigGetRegexpInput) => Promise<ConfigGetRegexpResult>;
309
- interface ConfigListInput {
310
- readonly scope?: ConfigScope;
311
- }
312
- interface ConfigListResult {
313
- readonly entries: ReadonlyArray<ConfigEntryView>;
314
- }
315
- declare const configList: (ctx: Context, input?: ConfigListInput) => Promise<ConfigListResult>;
316
- interface ConfigSetInput {
317
- readonly key: string;
318
- readonly value: string;
319
- readonly scope?: ConfigScope;
320
- }
321
- interface ConfigSetResult {
322
- readonly key: ConfigKey;
323
- readonly value: string;
324
- readonly scope: ConfigScope;
325
- }
326
- declare const configSet: (ctx: Context, input: ConfigSetInput) => Promise<ConfigSetResult>;
327
- interface ConfigUnsetInput {
328
- readonly key: string;
329
- readonly scope?: ConfigScope;
330
- }
331
- type ConfigUnsetResult = {
332
- readonly key: ConfigKey;
333
- readonly scope: ConfigScope;
334
- readonly removed: true;
335
- readonly previousValue: string;
336
- } | {
337
- readonly key: ConfigKey;
338
- readonly scope: ConfigScope;
339
- readonly removed: false;
340
- };
341
- declare const configUnset: (ctx: Context, input: ConfigUnsetInput) => Promise<ConfigUnsetResult>;
342
- interface ConfigUnsetAllInput {
343
- readonly key: string;
344
- readonly scope?: ConfigScope;
345
- }
346
- interface ConfigUnsetAllResult {
347
- readonly key: ConfigKey;
348
- readonly scope: ConfigScope;
349
- readonly removed: number;
350
- }
351
- declare const configUnsetAll: (ctx: Context, input: ConfigUnsetAllInput) => Promise<ConfigUnsetAllResult>;
352
- interface ConfigRenameSectionInput {
353
- readonly oldName: string;
354
- readonly newName: string;
355
- readonly scope?: ConfigScope;
356
- }
357
- interface ConfigRenameSectionResult {
358
- readonly oldName: string;
359
- readonly newName: string;
360
- readonly scope: ConfigScope;
361
- }
362
- declare const configRenameSection: (ctx: Context, input: ConfigRenameSectionInput) => Promise<ConfigRenameSectionResult>;
363
- interface ConfigRemoveSectionInput {
364
- readonly name: string;
365
- readonly scope?: ConfigScope;
366
- }
367
- interface ConfigRemoveSectionResult {
368
- readonly name: string;
369
- readonly scope: ConfigScope;
370
- }
371
- declare const configRemoveSection: (ctx: Context, input: ConfigRemoveSectionInput) => Promise<ConfigRemoveSectionResult>;
372
-
373
- interface ContinueMergeOptions {
374
- /** Override `MERGE_MSG`. Empty/undefined falls back to the draft. */
375
- readonly message?: string;
376
- /** Forwarded to commit. */
377
- readonly author?: AuthorIdentity;
378
- readonly committer?: AuthorIdentity;
379
- /** Skip the `pre-commit` and `commit-msg` hooks (git's `--no-verify`). */
380
- readonly noVerify?: boolean;
381
- }
382
- type ContinueMergeResult = CommitResult;
383
- /**
384
- * Finalise a conflicting merge as a merge commit. Asserts a merge is in
385
- * progress, then delegates to `commit` — which already reads
386
- * `MERGE_HEAD` for the second parent, falls back to `MERGE_MSG` when the
387
- * message is empty, runs hooks, and clears merge state on success
388
- * (ADR-174).
389
- *
390
- * Refuses when no merge is in progress (`MERGE_HEAD` absent). Refuses
391
- * (via `commit`) when the index still has stage-1/2/3 entries.
392
- */
393
- declare const continueMerge: (ctx: Context, opts?: ContinueMergeOptions) => Promise<ContinueMergeResult>;
394
-
395
- type DiffFormat = 'tree' | 'patch';
396
- interface DiffOptions {
397
- /** Resolve to a tree. Accepts ref name, oid, or 'HEAD'. */
398
- readonly from?: string;
399
- readonly to?: string;
400
- readonly detectRenames?: boolean;
401
- /** Output format. Default `'tree'` for backward compatibility. */
402
- readonly format?: DiffFormat;
403
- /** Lines of equal context bracketing each hunk. Default `3`. Patch-only. */
404
- readonly contextLines?: number;
405
- /** Path prefixes on `diff --git`, `--- a/`, `+++ b/` lines. Default `{ old: 'a/', new: 'b/' }`. */
406
- readonly pathPrefix?: PatchPathPrefix;
407
- }
408
- interface PatchResult {
409
- readonly format: 'patch';
410
- readonly text: string;
411
- readonly diff: TreeDiff;
412
- }
413
- type DiffResult = TreeDiff | PatchResult;
414
- /**
415
- * Diff two tree-like targets. Returns a structured `TreeDiff` by default;
416
- * pass `format: 'patch'` for a canonical unified-diff text plus the
417
- * structured view bundled together.
418
- */
419
- declare function diff(ctx: Context, opts?: DiffOptions & {
420
- format?: 'tree';
421
- }): Promise<TreeDiff>;
422
- declare function diff(ctx: Context, opts: DiffOptions & {
423
- format: 'patch';
424
- }): Promise<PatchResult>;
425
-
426
- interface FetchOptions {
427
- readonly remote?: string;
428
- readonly refspecs?: ReadonlyArray<string>;
429
- readonly prune?: boolean;
430
- /** Shallow clone depth. Delegates to fetchPack's deepen path. */
431
- readonly depth?: number;
432
- }
433
- interface FetchUpdate {
434
- readonly name: RefName;
435
- readonly oldId: ObjectId | undefined;
436
- readonly newId: ObjectId;
437
- }
438
- interface FetchResult {
439
- readonly remote: string;
440
- readonly url: string;
441
- readonly updatedRefs: ReadonlyArray<FetchUpdate>;
442
- /** Refs deleted because the server no longer advertises them (prune semantics). */
443
- readonly prunedRefs: ReadonlyArray<RefName>;
444
- /** New shallow boundaries written to `.git/shallow` during this fetch. */
445
- readonly shallow: ReadonlyArray<ObjectId>;
446
- /** Commits that crossed the shallow → non-shallow boundary during this fetch. */
447
- readonly unshallow: ReadonlyArray<ObjectId>;
448
- }
449
- declare const fetch: (ctx: Context, opts?: FetchOptions) => Promise<FetchResult>;
450
-
451
- interface FetchMissingOptions {
452
- /** Object ids to fetch. Ones already present locally are skipped. */
453
- readonly oids: ReadonlyArray<ObjectId>;
454
- }
455
- interface FetchMissingResult {
456
- /** The promisor remote the objects were fetched from. */
457
- readonly remote: string;
458
- /** Objects the caller asked for. */
459
- readonly requested: number;
460
- /** Objects that were missing locally and got fetched. */
461
- readonly fetched: number;
462
- }
463
- /**
464
- * Fetch the named objects from the repository's promisor remote. Throws
465
- * `NO_PROMISOR_REMOTE` when the repository is not a partial clone.
466
- */
467
- declare const fetchMissing: (ctx: Context, opts: FetchMissingOptions) => Promise<FetchMissingResult>;
468
- /**
469
- * `PromisorRemote` port implementation — the seam `readObject` calls on a
470
- * miss. A non-partial repository yields `attempted: false` (rather than
471
- * throwing) so `readObject` falls through to its normal `OBJECT_NOT_FOUND`.
472
- */
473
- declare const createPromisorRemote: (ctx: Context) => PromisorRemote;
474
-
475
- interface InitOptions {
476
- readonly initialBranch?: string;
477
- readonly bare?: boolean;
478
- }
479
- interface InitResult {
480
- readonly path: FilePath;
481
- readonly initialBranch: RefName;
482
- readonly bare: boolean;
483
- }
484
- /**
485
- * Initialize a fresh repository at `ctx.layout.gitDir`. Throws
486
- * `ALREADY_INITIALIZED` when the target gitDir already exists; otherwise
487
- * delegates to `bootstrapRepository` for the standard layout.
488
- *
489
- * For non-bare repos, the gitDir is `<workDir>/.git`. For bare, gitDir IS the
490
- * working dir — callers must construct a Context with `bare: true` for that
491
- * shape.
492
- */
493
- declare const init: (ctx: Context, opts?: InitOptions) => Promise<InitResult>;
494
-
495
- /**
496
- * The nested-namespace surface for `repo.branch.*`. Each method runs the
497
- * caller-supplied `guard()` first (so a disposed repository throws before any
498
- * work) and then forwards to the corresponding context-aware command in
499
- * `commands/branch.ts`.
500
- */
501
- interface BranchNamespace {
502
- readonly list: () => Promise<BranchListResult>;
503
- readonly create: (input: BranchCreateInput) => Promise<BranchCreateResult>;
504
- readonly delete: (input: BranchDeleteInput) => Promise<BranchDeleteResult>;
505
- readonly rename: (input: BranchRenameInput) => Promise<BranchRenameResult>;
506
- }
507
- /**
508
- * Bind the `repo.branch.*` nested-namespace dispatcher. `guard()` is the
509
- * lifecycle gate (typically the disposed/closed check from `openRepository`);
510
- * it is invoked before every method forwards to its underlying command.
511
- *
512
- * The returned object is frozen — callers cannot monkey-patch methods onto
513
- * the namespace at runtime.
514
- */
515
- declare const bindBranchNamespace: (ctx: Context, guard: () => void) => BranchNamespace;
516
-
517
- /**
518
- * The nested-namespace surface for `repo.cherryPick.*` (ADR-181/192/210). Each
519
- * method runs the caller-supplied `guard()` first (so a disposed repository
520
- * throws before any work) and forwards to the Context-aware command. Frozen.
521
- */
522
- interface CherryPickNamespace {
523
- readonly run: (input: CherryPickRunInput) => Promise<CherryPickResult>;
524
- readonly continue: (input?: CherryPickContinueInput) => Promise<CherryPickResult>;
525
- readonly skip: (input?: CherryPickContinueInput) => Promise<CherryPickResult>;
526
- readonly abort: () => Promise<CherryPickAbortResult>;
527
- }
528
- declare const bindCherryPickNamespace: (ctx: Context, guard: () => void) => CherryPickNamespace;
529
-
530
- /**
531
- * The nested-namespace surface for `repo.config.*` (ADR-181). Each method
532
- * runs the caller-supplied `guard()` first (so a disposed repository throws
533
- * before any work) and then forwards to the corresponding context-aware
534
- * command in `commands/config.ts`.
535
- */
536
- interface ConfigNamespace {
537
- readonly get: (input: ConfigGetInput) => Promise<ConfigGetResult>;
538
- readonly getAll: (input: ConfigGetAllInput) => Promise<ConfigGetAllResult>;
539
- readonly getRegexp: (input: ConfigGetRegexpInput) => Promise<ConfigGetRegexpResult>;
540
- readonly list: (input?: ConfigListInput) => Promise<ConfigListResult>;
541
- readonly set: (input: ConfigSetInput) => Promise<ConfigSetResult>;
542
- readonly unset: (input: ConfigUnsetInput) => Promise<ConfigUnsetResult>;
543
- readonly unsetAll: (input: ConfigUnsetAllInput) => Promise<ConfigUnsetAllResult>;
544
- readonly renameSection: (input: ConfigRenameSectionInput) => Promise<ConfigRenameSectionResult>;
545
- readonly removeSection: (input: ConfigRemoveSectionInput) => Promise<ConfigRemoveSectionResult>;
546
- }
547
- /**
548
- * Bind the `repo.config.*` nested-namespace dispatcher. `guard()` is the
549
- * lifecycle gate (typically the disposed/closed check from `openRepository`);
550
- * it is invoked before every method forwards to its underlying command.
551
- *
552
- * The returned object is frozen — callers cannot monkey-patch methods onto
553
- * the namespace at runtime.
554
- */
555
- declare const bindConfigNamespace: (ctx: Context, guard: () => void) => ConfigNamespace;
556
-
557
- type RebaseTodoAction = 'pick' | 'reword' | 'edit' | 'squash' | 'fixup' | 'drop';
558
-
559
- /** The interactive instruction verbs (`git rebase -i`). */
560
- type RebaseInteractiveAction = RebaseTodoAction;
561
- /** One post-`$EDITOR` interactive instruction — the edited-todo line as data. */
562
- interface RebaseInstruction {
563
- readonly action: RebaseInteractiveAction;
564
- /** A commit-ish in the `onto..HEAD` range. */
565
- readonly oid: string;
566
- /** reword: the new message (required). squash: the combined message
567
- * (optional — defaults to git's combination template). Ignored otherwise. */
568
- readonly message?: string;
569
- }
570
- interface RebaseRunInput {
571
- /** The fork-point side — a commit-ish (`git rebase <upstream>`). */
572
- readonly upstream: string;
573
- /** `--onto <newbase>`: replay onto this base instead of `upstream`. */
574
- readonly onto?: string;
575
- /** Present → interactive: the post-`$EDITOR` instruction list (`git rebase -i`). */
576
- readonly interactive?: ReadonlyArray<RebaseInstruction>;
577
- }
578
- interface RebasedCommit {
579
- readonly source: ObjectId;
580
- readonly created: ObjectId;
581
- }
582
- interface RebaseConflict {
583
- readonly path: FilePath;
584
- readonly type: ConflictType;
585
- }
586
- type RebaseResult = {
587
- readonly kind: 'rebased';
588
- readonly commits: ReadonlyArray<RebasedCommit>;
589
- } | {
590
- readonly kind: 'up-to-date';
591
- } | {
592
- readonly kind: 'conflict';
593
- readonly commit: ObjectId;
594
- readonly conflicts: ReadonlyArray<RebaseConflict>;
595
- readonly remaining: number;
596
- } | {
597
- readonly kind: 'stopped';
598
- readonly commit: ObjectId;
599
- readonly remaining: number;
600
- };
601
- declare const rebaseRun: (ctx: Context, input: RebaseRunInput) => Promise<RebaseResult>;
602
- interface RebaseAbortResult {
603
- readonly head: ObjectId;
604
- readonly headName: string;
605
- }
606
- /**
607
- * Resume the rebase after the conflicted commit was resolved: commit the resolved
608
- * index as the stopped commit (preserved author from `author-script`, current
609
- * committer, `rebase (continue)` reflog), then replay the remaining todo.
610
- */
611
- declare const rebaseContinue: (ctx: Context) => Promise<RebaseResult>;
612
- /** Drop the conflicted commit (hard-reset to the last good pick) and replay the rest. */
613
- declare const rebaseSkip: (ctx: Context) => Promise<RebaseResult>;
614
- /**
615
- * Abort the rebase: hard-reset the working tree + index to the pre-rebase tip,
616
- * reattach `head-name`, record git's `rebase (abort): returning to <name>` reflog
617
- * (the branch never moved during the replay, so it gets no entry), clear state.
618
- */
619
- declare const rebaseAbort: (ctx: Context) => Promise<RebaseAbortResult>;
620
-
621
- /**
622
- * The nested-namespace surface for `repo.rebase.*` (ADR-181/192/230). Each method
623
- * runs the caller-supplied `guard()` first (so a disposed repository throws before
624
- * any work) and forwards to the Context-aware command. Frozen.
625
- */
626
- interface RebaseNamespace {
627
- readonly run: (input: RebaseRunInput) => Promise<RebaseResult>;
628
- readonly continue: () => Promise<RebaseResult>;
629
- readonly skip: () => Promise<RebaseResult>;
630
- readonly abort: () => Promise<RebaseAbortResult>;
631
- }
632
- declare const bindRebaseNamespace: (ctx: Context, guard: () => void) => RebaseNamespace;
633
-
634
- /** Compact view of a remote pulled from `.git/config`. */
635
- interface RemoteInfo {
636
- readonly name: string;
637
- readonly url: string;
638
- readonly pushUrl: string | undefined;
639
- readonly fetchRefspecs: ReadonlyArray<string>;
640
- }
641
- /** Local-only `show` payload: config view + tracking refs + tracking branches. */
642
- interface RemoteShow extends RemoteInfo {
643
- readonly trackingRefs: ReadonlyMap<RefName, ObjectId>;
644
- readonly trackedBy: ReadonlyArray<{
645
- readonly branch: RefName;
646
- readonly merge: string | undefined;
647
- }>;
648
- }
649
- interface RemoteListResult {
650
- readonly remotes: ReadonlyArray<RemoteInfo>;
651
- }
652
- interface RemoteAddInput {
653
- readonly name: string;
654
- readonly url: string;
655
- readonly fetch?: string;
656
- }
657
- interface RemoteAddResult {
658
- readonly remote: RemoteInfo;
659
- }
660
- interface RemoteRemoveInput {
661
- readonly name: string;
662
- }
663
- interface RemoteRemoveResult {
664
- readonly name: string;
665
- readonly removedTrackingRefs: ReadonlyArray<RefName>;
666
- readonly clearedBranches: ReadonlyArray<RefName>;
667
- }
668
- interface RemoteRenameInput {
669
- readonly from: string;
670
- readonly to: string;
671
- }
672
- interface RemoteRenameResult {
673
- readonly from: string;
674
- readonly to: string;
675
- readonly movedTrackingRefs: ReadonlyArray<RefName>;
676
- readonly rewrittenBranches: ReadonlyArray<RefName>;
677
- }
678
- interface RemoteSetUrlInput {
679
- readonly name: string;
680
- readonly url: string;
681
- readonly push?: boolean;
682
- }
683
- interface RemoteSetUrlResult {
684
- readonly remote: RemoteInfo;
685
- }
686
- interface RemoteShowInput {
687
- readonly name: string;
688
- }
689
- interface RemoteShowResult {
690
- readonly remote: RemoteShow;
691
- }
692
- declare const remoteList: (ctx: Context) => Promise<RemoteListResult>;
693
- declare const remoteAdd: (ctx: Context, input: RemoteAddInput) => Promise<RemoteAddResult>;
694
- declare const remoteRemove: (ctx: Context, input: RemoteRemoveInput) => Promise<RemoteRemoveResult>;
695
- declare const remoteRename: (ctx: Context, input: RemoteRenameInput) => Promise<RemoteRenameResult>;
696
- declare const remoteSetUrl: (ctx: Context, input: RemoteSetUrlInput) => Promise<RemoteSetUrlResult>;
697
- declare const remoteShow: (ctx: Context, input: RemoteShowInput) => Promise<RemoteShowResult>;
698
-
699
- /**
700
- * The nested-namespace surface for `repo.remote.*`. Each method runs the
701
- * caller-supplied `guard()` first (so a disposed repository throws before any
702
- * work) and then forwards to the corresponding context-aware command in
703
- * `commands/remote.ts`.
704
- */
705
- interface RemoteNamespace {
706
- readonly list: () => Promise<RemoteListResult>;
707
- readonly add: (input: RemoteAddInput) => Promise<RemoteAddResult>;
708
- readonly remove: (input: RemoteRemoveInput) => Promise<RemoteRemoveResult>;
709
- readonly rename: (input: RemoteRenameInput) => Promise<RemoteRenameResult>;
710
- readonly setUrl: (input: RemoteSetUrlInput) => Promise<RemoteSetUrlResult>;
711
- readonly show: (input: RemoteShowInput) => Promise<RemoteShowResult>;
712
- }
713
- /**
714
- * Bind the `repo.remote.*` nested-namespace dispatcher. `guard()` is the
715
- * lifecycle gate (typically the disposed/closed check from `openRepository`);
716
- * it is invoked before every method forwards to its underlying command.
717
- *
718
- * The returned object is frozen — callers cannot monkey-patch methods onto
719
- * the namespace at runtime.
720
- */
721
- declare const bindRemoteNamespace: (ctx: Context, guard: () => void) => RemoteNamespace;
722
-
723
- interface RevertRunInput {
724
- /** Revisions to revert, in argument order — a commit-ish each. */
725
- readonly commits: ReadonlyArray<string>;
726
- /** -n / --no-commit: apply each reverse change to the index + working tree
727
- * only; never commit, never persist REVERT_HEAD / sequencer state. */
728
- readonly noCommit?: boolean;
729
- }
730
- interface RevertedCommit {
731
- readonly source: ObjectId;
732
- readonly created: ObjectId;
733
- }
734
- interface RevertConflict {
735
- readonly path: FilePath;
736
- readonly type: ConflictType;
737
- }
738
- type RevertResult = {
739
- readonly kind: 'reverted';
740
- readonly commits: ReadonlyArray<RevertedCommit>;
741
- } | {
742
- readonly kind: 'no-commit';
743
- readonly sources: ReadonlyArray<ObjectId>;
744
- } | {
745
- readonly kind: 'conflict';
746
- readonly commit: ObjectId;
747
- readonly conflicts: ReadonlyArray<RevertConflict>;
748
- readonly remaining: number;
749
- } | {
750
- readonly kind: 'empty';
751
- readonly commit: ObjectId;
752
- readonly remaining: number;
753
- };
754
- declare const revertRun: (ctx: Context, input: RevertRunInput) => Promise<RevertResult>;
755
- /**
756
- * Finalise the in-progress conflicted revert (if any) as a single-parent commit,
757
- * then resume the remaining sequencer reverts. Refuses when nothing is in progress
758
- * or the index is unmerged; a resolution that yields no change re-stops empty.
759
- */
760
- declare const revertContinue: (ctx: Context) => Promise<RevertResult>;
761
- interface RevertAbortResult {
762
- readonly head: ObjectId;
763
- readonly branch: RefName;
764
- }
765
- /**
766
- * Drop the in-progress revert: hard-reset to HEAD (discarding its half-applied
767
- * state), then resume the remaining sequencer reverts (if any).
768
- */
769
- declare const revertSkip: (ctx: Context) => Promise<RevertResult>;
770
- /**
771
- * Abort the revert: hard-reset the working tree, index, and branch to the
772
- * pre-sequence HEAD (sequencer `head`, or the current HEAD for a lone revert),
773
- * and clear all state. The branch update records git's faithful
774
- * `reset: moving to <oid>` reflog. Refuses when nothing is in progress.
775
- */
776
- declare const revertAbort: (ctx: Context) => Promise<RevertAbortResult>;
777
-
778
- /**
779
- * The nested-namespace surface for `repo.revert.*` (ADR-181/192/210/217 lineage).
780
- * Each method runs the caller-supplied `guard()` first (so a disposed repository
781
- * throws before any work) and forwards to the Context-aware command. Frozen.
782
- * `continue` / `skip` take no arguments — revert has no resume-time options.
783
- */
784
- interface RevertNamespace {
785
- readonly run: (input: RevertRunInput) => Promise<RevertResult>;
786
- readonly continue: () => Promise<RevertResult>;
787
- readonly skip: () => Promise<RevertResult>;
788
- readonly abort: () => Promise<RevertAbortResult>;
789
- }
790
- declare const bindRevertNamespace: (ctx: Context, guard: () => void) => RevertNamespace;
791
-
792
- interface SparseCheckoutListResult {
793
- readonly cone: boolean;
794
- readonly patterns: ReadonlyArray<string>;
795
- }
796
- interface SparseCheckoutAppliedResult {
797
- readonly cone: boolean;
798
- readonly materialized: number;
799
- readonly removed: number;
800
- readonly retained: ReadonlyArray<FilePath>;
801
- }
802
- interface SparseCheckoutSetInput {
803
- readonly patterns: ReadonlyArray<string>;
804
- readonly cone?: boolean;
805
- readonly force?: boolean;
806
- }
807
- interface SparseCheckoutAddInput {
808
- readonly patterns: ReadonlyArray<string>;
809
- readonly force?: boolean;
810
- }
811
- interface SparseCheckoutReapplyInput {
812
- readonly force?: boolean;
813
- }
814
- interface SparseCheckoutDisableInput {
815
- readonly force?: boolean;
816
- }
817
- declare const sparseCheckoutList: (ctx: Context) => Promise<SparseCheckoutListResult>;
818
- declare const sparseCheckoutSet: (ctx: Context, input: SparseCheckoutSetInput) => Promise<SparseCheckoutAppliedResult>;
819
- declare const sparseCheckoutAdd: (ctx: Context, input: SparseCheckoutAddInput) => Promise<SparseCheckoutAppliedResult>;
820
- declare const sparseCheckoutReapply: (ctx: Context, input?: SparseCheckoutReapplyInput) => Promise<SparseCheckoutAppliedResult>;
821
- declare const sparseCheckoutDisable: (ctx: Context, input?: SparseCheckoutDisableInput) => Promise<SparseCheckoutAppliedResult>;
822
-
823
- /**
824
- * The nested-namespace surface for `repo.sparseCheckout.*`. Each method runs
825
- * the caller-supplied `guard()` first (so a disposed repository throws before
826
- * any work) and then forwards to the corresponding context-aware command in
827
- * `commands/sparse-checkout.ts`.
828
- */
829
- interface SparseCheckoutNamespace {
830
- readonly list: () => Promise<SparseCheckoutListResult>;
831
- readonly set: (input: SparseCheckoutSetInput) => Promise<SparseCheckoutAppliedResult>;
832
- readonly add: (input: SparseCheckoutAddInput) => Promise<SparseCheckoutAppliedResult>;
833
- readonly reapply: (input?: SparseCheckoutReapplyInput) => Promise<SparseCheckoutAppliedResult>;
834
- readonly disable: (input?: SparseCheckoutDisableInput) => Promise<SparseCheckoutAppliedResult>;
835
- }
836
- /**
837
- * Bind the `repo.sparseCheckout.*` nested-namespace dispatcher. `guard()` is
838
- * the lifecycle gate (typically the disposed/closed check from
839
- * `openRepository`); it is invoked before every method forwards to its
840
- * underlying command.
841
- *
842
- * The returned object is frozen — callers cannot monkey-patch methods onto
843
- * the namespace at runtime.
844
- */
845
- declare const bindSparseCheckoutNamespace: (ctx: Context, guard: () => void) => SparseCheckoutNamespace;
846
-
847
- /** One entry of the stash stack, newest-first (`stash@{0}` = index 0). */
848
- interface StashStackEntry {
849
- readonly index: number;
850
- readonly selector: string;
851
- readonly stash: ObjectId;
852
- readonly message: string;
853
- }
854
- interface StashDropResult {
855
- readonly dropped: ObjectId;
856
- readonly remaining: number;
857
- }
858
-
859
- interface StashPushInput {
860
- readonly message?: string;
861
- readonly includeUntracked?: boolean;
862
- readonly keepIndex?: boolean;
863
- }
864
- type StashPushResult = {
865
- readonly kind: 'saved';
866
- readonly stash: ObjectId;
867
- readonly message: string;
868
- } | {
869
- readonly kind: 'no-local-changes';
870
- };
871
- declare const stashPush: (ctx: Context, opts?: StashPushInput) => Promise<StashPushResult>;
872
-
873
- type StashListEntry = StashStackEntry;
874
- interface StashListResult {
875
- readonly entries: ReadonlyArray<StashListEntry>;
876
- }
877
- /** List the stash stack, newest-first (`stash@{0}` first). */
878
- declare const stashList: (ctx: Context) => Promise<StashListResult>;
879
- interface StashDropInput {
880
- readonly index?: number;
881
- }
882
- /** Drop `stash@{index}` (default newest) from the stack. */
883
- declare const stashDrop: (ctx: Context, input?: StashDropInput) => Promise<StashDropResult>;
884
- interface StashApplyInput {
885
- readonly index?: number;
886
- readonly restoreIndex?: boolean;
887
- }
888
- interface StashConflict {
889
- readonly path: FilePath;
890
- readonly type: ConflictType;
891
- }
892
- type StashApplyResult = {
893
- readonly kind: 'applied';
894
- readonly stash: ObjectId;
895
- } | {
896
- readonly kind: 'conflict';
897
- readonly conflicts: ReadonlyArray<StashConflict>;
898
- };
899
- /** Apply `stash@{index}` (default newest) onto the working tree via a 3-way merge. */
900
- declare const stashApply: (ctx: Context, input?: StashApplyInput) => Promise<StashApplyResult>;
901
- type StashPopResult = {
902
- readonly kind: 'applied';
903
- readonly stash: ObjectId;
904
- readonly dropped: ObjectId;
905
- } | {
906
- readonly kind: 'conflict';
907
- readonly conflicts: ReadonlyArray<StashConflict>;
908
- };
909
- /** Apply `stash@{index}` then drop it; on conflict the stash is retained. */
910
- declare const stashPop: (ctx: Context, input?: StashApplyInput) => Promise<StashPopResult>;
911
-
912
- /**
913
- * The nested-namespace surface for `repo.stash.*` (ADR-181 / ADR-192). Each
914
- * method runs the caller-supplied `guard()` first (so a disposed repository
915
- * throws before any work) and then forwards to the corresponding Context-aware
916
- * command in `commands/stash.ts`. The returned object is frozen.
917
- */
918
- interface StashNamespace {
919
- readonly push: (input?: StashPushInput) => Promise<StashPushResult>;
920
- readonly list: () => Promise<StashListResult>;
921
- readonly apply: (input?: StashApplyInput) => Promise<StashApplyResult>;
922
- readonly pop: (input?: StashApplyInput) => Promise<StashPopResult>;
923
- readonly drop: (input?: StashDropInput) => Promise<StashDropResult>;
924
- }
925
- declare const bindStashNamespace: (ctx: Context, guard: () => void) => StashNamespace;
926
-
927
- interface TagInfo {
928
- readonly name: RefName;
929
- readonly id: ObjectId;
930
- }
931
- interface TagListResult {
932
- readonly tags: ReadonlyArray<TagInfo>;
933
- }
934
- interface TagCreateInput {
935
- readonly name: string;
936
- readonly target?: string;
937
- readonly force?: boolean;
938
- }
939
- interface TagCreateResult {
940
- readonly name: RefName;
941
- readonly id: ObjectId;
942
- }
943
- interface TagDeleteInput {
944
- readonly name: string;
945
- }
946
- interface TagDeleteResult {
947
- readonly name: RefName;
948
- }
949
- declare const tagList: (ctx: Context) => Promise<TagListResult>;
950
- declare const tagCreate: (ctx: Context, input: TagCreateInput) => Promise<TagCreateResult>;
951
- declare const tagDelete: (ctx: Context, input: TagDeleteInput) => Promise<TagDeleteResult>;
952
-
953
- /**
954
- * The nested-namespace surface for `repo.tag.*`. Each method runs the
955
- * caller-supplied `guard()` first (so a disposed repository throws before any
956
- * work) and then forwards to the corresponding context-aware command in
957
- * `commands/tag.ts`.
958
- */
959
- interface TagNamespace {
960
- readonly list: () => Promise<TagListResult>;
961
- readonly create: (input: TagCreateInput) => Promise<TagCreateResult>;
962
- readonly delete: (input: TagDeleteInput) => Promise<TagDeleteResult>;
963
- }
964
- /**
965
- * Bind the `repo.tag.*` nested-namespace dispatcher. `guard()` is the
966
- * lifecycle gate (typically the disposed/closed check from `openRepository`);
967
- * it is invoked before every method forwards to its underlying command.
968
- *
969
- * The returned object is frozen — callers cannot monkey-patch methods onto
970
- * the namespace at runtime.
971
- */
972
- declare const bindTagNamespace: (ctx: Context, guard: () => void) => TagNamespace;
973
-
974
- interface LogOptions {
975
- readonly from?: string;
976
- readonly limit?: number;
977
- readonly excluding?: ReadonlyArray<string>;
978
- readonly before?: Date;
979
- }
980
- interface LogEntry {
981
- readonly id: ObjectId;
982
- readonly tree: ObjectId;
983
- readonly parents: ReadonlyArray<ObjectId>;
984
- readonly author: AuthorIdentity;
985
- readonly committer: AuthorIdentity;
986
- readonly message: string;
987
- }
988
- /**
989
- * Walk first-parent commits starting from `from` (default: HEAD), yielding
990
- * ordered `LogEntry` records. Honors `limit`, `excluding` (oid stops), and
991
- * `before` (only commits with `committer.timestamp < before`).
992
- */
993
- declare const log: (ctx: Context, opts?: LogOptions) => Promise<ReadonlyArray<LogEntry>>;
994
-
995
- interface MergeOptions {
996
- readonly target: string;
997
- readonly message?: string;
998
- readonly fastForwardOnly?: boolean;
999
- readonly noFastForward?: boolean;
1000
- readonly author?: AuthorIdentity;
1001
- readonly committer?: AuthorIdentity;
1002
- /**
1003
- * Reflog action prefix, mirroring git's GIT_REFLOG_ACTION. Replaces the
1004
- * default `merge <target>` prefix in the fast-forward and merge-commit reflog
1005
- * messages (e.g. `pull` → `pull: Fast-forward`). Defaults to `merge <target>`.
1006
- */
1007
- readonly reflogLabel?: string;
1008
- }
1009
- interface MergeConflictDescriptor {
1010
- readonly path: FilePath;
1011
- readonly type: ConflictType;
1012
- }
1013
- type MergeResult = {
1014
- readonly kind: 'up-to-date';
1015
- readonly id: ObjectId;
1016
- } | {
1017
- readonly kind: 'fast-forward';
1018
- readonly id: ObjectId;
1019
- readonly branch: RefName;
1020
- } | {
1021
- readonly kind: 'merge';
1022
- readonly id: ObjectId;
1023
- readonly branch: RefName;
1024
- readonly parents: ReadonlyArray<ObjectId>;
1025
- } | {
1026
- readonly kind: 'conflict';
1027
- readonly conflicts: ReadonlyArray<MergeConflictDescriptor>;
1028
- readonly mergeHead: ObjectId;
1029
- readonly origHead: ObjectId;
1030
- };
1031
- /**
1032
- * Merge `target` into the current HEAD branch.
1033
- *
1034
- * - Up-to-date: target is ancestor of HEAD → no-op.
1035
- * - Fast-forward: HEAD is ancestor of target → branch advances.
1036
- * - True merge for diverged histories:.4a wired the three-way
1037
- * tree merge (`mergeTrees` + `mergeContent`) so a CLEAN merge commits
1038
- * the merged tree directly.4b persists conflict state on
1039
- * disk (marker files, stage-1/2/3 index entries, MERGE_HEAD /
1040
- * MERGE_MSG / ORIG_HEAD) and returns `{ kind: 'conflict',... }`.
1041
- * Resolution path: edit the marker files, `repo.add(paths)`,
1042
- * `repo.commit({ message })` — the resulting commit has two parents.
1043
- */
1044
- declare const merge: (ctx: Context, opts: MergeOptions) => Promise<MergeResult>;
1045
-
1046
- interface MvOptions {
1047
- /** Overwrite an existing destination (a file source only). `-f`. */
1048
- readonly force?: boolean;
1049
- /** Validate and report the plan without touching index or working tree. `-n`. */
1050
- readonly dryRun?: boolean;
1051
- /** Skip refused (source → target) pairs instead of aborting the whole call. `-k`. */
1052
- readonly skipErrors?: boolean;
1053
- /** Break a stale `index.lock` older than N ms (same contract as rm/add). */
1054
- readonly breakStaleLockMs?: number;
1055
- }
1056
- interface MvMove {
1057
- readonly from: FilePath;
1058
- readonly to: FilePath;
1059
- }
1060
- /** Per-source refusals that `skipErrors` collects rather than throwing. */
1061
- type MvSkipReason = 'source-not-tracked' | 'bad-source' | 'destination-exists' | 'into-self';
1062
- interface MvSkipped {
1063
- readonly source: FilePath;
1064
- readonly reason: MvSkipReason;
1065
- }
1066
- interface MvResult {
1067
- readonly moved: ReadonlyArray<MvMove>;
1068
- readonly skipped: ReadonlyArray<MvSkipped>;
1069
- }
1070
- /**
1071
- * Move/rename tracked paths in the index and the working tree, faithful to
1072
- * `git mv`. Each (source → target) pair is validated up front; on any refusal
1073
- * nothing is moved (unless `skipErrors`). Blob ids and modes are copied from the
1074
- * source's index entry — the working file is renamed as-is, never re-hashed.
1075
- */
1076
- declare const mv: (ctx: Context, sources: ReadonlyArray<string>, destination: string, opts?: MvOptions) => Promise<MvResult>;
1077
-
1078
- interface PullOptions {
1079
- /** Remote to pull from. Default: `branch.<current>.remote` ?? `'origin'`. */
1080
- readonly remote?: string;
1081
- /**
1082
- * Short branch name to merge. Default: short form of `branch.<current>.merge`.
1083
- * When neither is resolvable, pull throws `NO_UPSTREAM_CONFIGURED`.
1084
- */
1085
- readonly branch?: string;
1086
- /** Reject the pull when a true merge would be required. */
1087
- readonly fastForwardOnly?: boolean;
1088
- /** Always create a merge commit, even when a fast-forward is possible. */
1089
- readonly noFastForward?: boolean;
1090
- /** Prune deleted remote-tracking refs during the fetch step. */
1091
- readonly prune?: boolean;
1092
- /** Shallow fetch depth, forwarded to fetch. */
1093
- readonly depth?: number;
1094
- /** Override the generated merge commit message / MERGE_MSG. */
1095
- readonly message?: string;
1096
- /** Identity for the merge commit (true-merge path only). */
1097
- readonly author?: AuthorIdentity;
1098
- readonly committer?: AuthorIdentity;
1099
- }
1100
- interface PullResult {
1101
- readonly fetch: FetchResult;
1102
- readonly merge: MergeResult;
1103
- }
1104
- declare const pull: (ctx: Context, opts?: PullOptions) => Promise<PullResult>;
1105
-
1106
- interface PushOptions {
1107
- readonly remote?: string;
1108
- readonly refspecs?: ReadonlyArray<string>;
1109
- readonly force?: boolean;
1110
- readonly forceWithLease?: ObjectId | 'auto';
1111
- /** Skip the `pre-push` hook (git's `--no-verify`). */
1112
- readonly noVerify?: boolean;
1113
- }
1114
- interface PushedRef {
1115
- readonly name: RefName;
1116
- readonly oldId: ObjectId;
1117
- readonly newId: ObjectId;
1118
- readonly status: 'ok' | 'rejected';
1119
- readonly reason?: string;
1120
- }
1121
- interface PushResult {
1122
- readonly remote: string;
1123
- readonly url: string;
1124
- readonly pushedRefs: ReadonlyArray<PushedRef>;
1125
- }
1126
- declare const push: (ctx: Context, opts?: PushOptions) => Promise<PushResult>;
1127
-
1128
- type ReflogAction = {
1129
- readonly action?: 'show';
1130
- readonly ref?: string;
1131
- } | {
1132
- readonly action: 'exists';
1133
- readonly ref: string;
1134
- } | {
1135
- readonly action: 'delete';
1136
- readonly ref: string;
1137
- readonly index: number;
1138
- readonly rewrite?: boolean;
1139
- } | {
1140
- readonly action: 'expire';
1141
- readonly ref?: string;
1142
- readonly all?: boolean;
1143
- readonly expire?: string;
1144
- readonly expireUnreachable?: string;
1145
- };
1146
- /** One reflog entry as `show` presents it: newest-first, with a selector. */
1147
- interface ReflogShowEntry {
1148
- readonly index: number;
1149
- readonly selector: string;
1150
- readonly entry: ReflogEntry;
1151
- }
1152
- type ReflogResult = {
1153
- readonly kind: 'show';
1154
- readonly ref: RefName;
1155
- readonly entries: ReadonlyArray<ReflogShowEntry>;
1156
- } | {
1157
- readonly kind: 'exists';
1158
- readonly exists: boolean;
1159
- } | {
1160
- readonly kind: 'expire';
1161
- readonly removed: number;
1162
- readonly kept: number;
1163
- } | {
1164
- readonly kind: 'delete';
1165
- readonly removed: ReflogEntry;
1166
- };
1167
- declare const reflog: (ctx: Context, opts?: ReflogAction) => Promise<ReflogResult>;
1168
-
1169
- type ResetMode = 'soft' | 'mixed' | 'hard';
1170
- interface ResetOptions {
1171
- readonly mode: ResetMode;
1172
- readonly target: string;
1173
- }
1174
- interface ResetResult {
1175
- readonly mode: ResetMode;
1176
- readonly id: ObjectId;
1177
- readonly branch: RefName | undefined;
1178
- }
1179
- /**
1180
- * Reset HEAD (and optionally index/working tree) to `target`.
1181
- *
1182
- * - `soft`: HEAD only.
1183
- * - `mixed`: HEAD + rebuild the index from the target commit's tree
1184
- * (stat-cache donor strategy preserves cache for unchanged paths —
1185
- * ). Working tree is NOT touched.
1186
- * - `hard`: HEAD + index + working tree — materialise the target tree onto
1187
- * the working tree with `force: true`, then commit the post-write
1188
- * index entries. Bare repos are rejected upfront.
1189
- *
1190
- * Ordering: working tree → index → HEAD. The index lock wraps both the
1191
- * working-tree write AND the index commit, matching tightened
1192
- * pattern. A crash between the index commit and HEAD update leaves the index
1193
- * ahead of HEAD — same recoverable hazard as canonical git.
1194
- */
1195
- declare const reset: (ctx: Context, opts: ResetOptions) => Promise<ResetResult>;
1196
-
1197
- declare const revParse: (ctx: Context, expression: string) => Promise<ObjectId>;
1198
-
1199
- interface RmOptions {
1200
- readonly cached?: boolean;
1201
- /** Override the safety valve (`-f`) — remove even staged / locally-modified paths. */
1202
- readonly force?: boolean;
1203
- readonly breakStaleLockMs?: number;
1204
- }
1205
- interface RmResult {
1206
- readonly removed: ReadonlyArray<FilePath>;
1207
- }
1208
- /**
1209
- * Remove the given paths from the index (and from the working tree unless
1210
- * `cached: true`). Refuses when a path isn't tracked, matches `git rm`'s default.
1211
- */
1212
- declare const rm: (ctx: Context, paths: ReadonlyArray<string>, opts?: RmOptions) => Promise<RmResult>;
1213
-
1214
- type ChangeKind = 'modified' | 'added' | 'deleted' | 'untracked';
1215
- interface ChangeEntry {
1216
- readonly kind: ChangeKind;
1217
- readonly path: FilePath;
1218
- }
1219
- interface StatusResult {
1220
- readonly branch: RefName | undefined;
1221
- readonly detached: boolean;
1222
- readonly indexChanges: ReadonlyArray<ChangeEntry>;
1223
- readonly workingTreeChanges: ReadonlyArray<ChangeEntry>;
1224
- readonly clean: boolean;
1225
- }
1226
- /**
1227
- * Summarize the state of the working tree relative to the index, and the
1228
- * branch HEAD points at. Working-tree-vs-HEAD diff (Git's "staged" column)
1229
- * is approximated via index-vs-working-tree comparisons until
1230
- * adds the stat-cache fast path.
1231
- *
1232
- * Progress reporting: emits `status:scan` start before the
1233
- * fan-out, updates at every 100 lstat completions, and end in a finally
1234
- * block so the consumer always pairs start with end. `total` is undefined
1235
- * — design choice that prevents revealing repository size to non-trusted
1236
- * progress sinks.
1237
- */
1238
- declare const status: (ctx: Context) => Promise<StatusResult>;
1239
-
1240
- type SubmodulesAction = {
1241
- readonly action?: 'list';
1242
- /** Tree-ish to walk. Default: `'HEAD'`. */
1243
- readonly ref?: string;
1244
- /** Descend into nested submodules' own `.gitmodules`. Default: `false`. */
1245
- readonly recursive?: boolean;
1246
- /**
1247
- * Cap on recursion depth. Default: `MAX_SUBMODULE_DEPTH`. Entries at exactly
1248
- * this depth are yielded but not recursed into.
1249
- */
1250
- readonly maxDepth?: number;
1251
- };
1252
- type SubmodulesResult = {
1253
- readonly kind: 'list';
1254
- readonly entries: ReadonlyArray<SubmoduleEntry>;
1255
- };
1256
- declare const submodules: (ctx: Context, opts?: SubmodulesAction) => Promise<SubmodulesResult>;
1257
-
1258
- export { CatFileBatchEntry, SubmoduleEntry, abortMerge, add, bindBranchNamespace, bindCherryPickNamespace, bindConfigNamespace, bindRebaseNamespace, bindRemoteNamespace, bindRevertNamespace, bindSparseCheckoutNamespace, bindStashNamespace, bindTagNamespace, branchCreate, branchDelete, branchList, branchRename, catFile, checkout, cherryPickAbort, cherryPickContinue, cherryPickRun, cherryPickSkip, clone, commit, configGet, configGetAll, configGetRegexp, configList, configRemoveSection, configRenameSection, configSet, configUnset, configUnsetAll, continueMerge, createPromisorRemote, diff, fetch, fetchMissing, init, log, merge, mv, pull, push, rebaseAbort, rebaseContinue, rebaseRun, rebaseSkip, reflog, remoteAdd, remoteList, remoteRemove, remoteRename, remoteSetUrl, remoteShow, reset, revParse, revertAbort, revertContinue, revertRun, revertSkip, rm, sparseCheckoutAdd, sparseCheckoutDisable, sparseCheckoutList, sparseCheckoutReapply, sparseCheckoutSet, stashApply, stashDrop, stashList, stashPop, stashPush, status, submodules, tagCreate, tagDelete, tagList };
1259
- export type { AbortMergeResult, AddOptions, AddResult, BranchCreateInput, BranchCreateResult, BranchDeleteInput, BranchDeleteResult, BranchInfo, BranchListResult, BranchNamespace, BranchRenameInput, BranchRenameResult, CatFileInput, CatFileResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CherryPickAbortResult, CherryPickConflict, CherryPickContinueInput, CherryPickNamespace, CherryPickResult, CherryPickRunInput, CherryPickedCommit, CloneOptions, CloneResult, CommitOptions, CommitResult, ConfigEntryView, ConfigGetAllInput, ConfigGetAllResult, ConfigGetInput, ConfigGetRegexpInput, ConfigGetRegexpResult, ConfigGetResult, ConfigListInput, ConfigListResult, ConfigNamespace, ConfigRemoveSectionInput, ConfigRemoveSectionResult, ConfigRenameSectionInput, ConfigRenameSectionResult, ConfigSetInput, ConfigSetResult, ConfigUnsetAllInput, ConfigUnsetAllResult, ConfigUnsetInput, ConfigUnsetResult, ContinueMergeOptions, ContinueMergeResult, DiffFormat, DiffOptions, DiffResult, FetchMissingOptions, FetchMissingResult, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, MvMove, MvOptions, MvResult, MvSkipReason, MvSkipped, PatchResult, PullOptions, PullResult, PushOptions, PushResult, RebaseAbortResult, RebaseConflict, RebaseInstruction, RebaseInteractiveAction, RebaseNamespace, RebaseResult, RebaseRunInput, RebasedCommit, ReflogAction, ReflogResult, ReflogShowEntry, RemoteAddInput, RemoteAddResult, RemoteInfo, RemoteListResult, RemoteNamespace, RemoteRemoveInput, RemoteRemoveResult, RemoteRenameInput, RemoteRenameResult, RemoteSetUrlInput, RemoteSetUrlResult, RemoteShow, RemoteShowInput, RemoteShowResult, ResetMode, ResetOptions, ResetResult, RevertAbortResult, RevertConflict, RevertNamespace, RevertResult, RevertRunInput, RevertedCommit, RmOptions, RmResult, SparseCheckoutAddInput, SparseCheckoutAppliedResult, SparseCheckoutDisableInput, SparseCheckoutListResult, SparseCheckoutNamespace, SparseCheckoutReapplyInput, SparseCheckoutSetInput, StashApplyInput, StashApplyResult, StashConflict, StashDropInput, StashDropResult, StashListEntry, StashListResult, StashNamespace, StashPopResult, StashPushInput, StashPushResult, StatusResult, SubmodulesAction, SubmodulesResult, TagCreateInput, TagCreateResult, TagDeleteInput, TagDeleteResult, TagInfo, TagListResult, TagNamespace };
1
+ export { A as AddOptions, a as AddResult, b as ArchiveEntry, c as ArchiveOptions, d as ArchiveResult, e as BlameLine, f as BlameLineBase, g as BlameOptions, h as BlameResult, i as BlobSide, j as BranchCreateInput, k as BranchCreateResult, l as BranchDeleteInput, m as BranchDeleteResult, n as BranchInfo, o as BranchListResult, p as BranchNamespace, q as BranchRenameInput, r as BranchRenameResult, s as BundleCreateOptions, t as BundleCreateResult, u as BundleHashAlgorithm, v as BundleListHeadsInput, w as BundleListHeadsResult, x as BundleNamespace, y as BundlePrerequisite, z as BundleRef, C as BundleRevArg, D as BundleVerifyInput, E as BundleVerifyResult, F as BundleVersion, G as CatFileInput, H as CatFileResult, I as ChangeKind, J as ChangedPath, K as CheckoutOptions, L as CheckoutResult, M as CherryPickAbortResult, N as CherryPickConflict, O as CherryPickContinueInput, P as CherryPickNamespace, Q as CherryPickResult, R as CherryPickRunInput, S as CherryPickedCommit, T as CloneOptions, U as CloneResult, V as CommitOptions, W as CommitResult, X as CommittedBlameLine, Y as ConfigEntryView, Z as ConfigGetAllInput, _ as ConfigGetAllResult, $ as ConfigGetInput, a0 as ConfigGetRegexpInput, a1 as ConfigGetRegexpResult, a2 as ConfigGetResult, a3 as ConfigListInput, a4 as ConfigListResult, a5 as ConfigNamespace, a6 as ConfigRemoveSectionInput, a7 as ConfigRemoveSectionResult, a8 as ConfigRenameSectionInput, a9 as ConfigRenameSectionResult, aa as ConfigSetInput, ab as ConfigSetResult, ac as ConfigUnsetAllInput, ad as ConfigUnsetAllResult, ae as ConfigUnsetInput, af as ConfigUnsetResult, ag as ConflictKind, ah as DescribeOptions, ai as DescribeResult, aj as DiffOptions, ak as FetchMissingOptions, al as FetchMissingResult, am as FetchOptions, an as FetchResult, ao as FsckFinding, ap as FsckObjectType, aq as FsckOptions, ar as FsckResult, as as FsckSeverity, au as GrepLineHit, ax as GrepOptions, ay as GrepPathResult, aA as GrepResult, aC as InitOptions, aD as InitResult, aI as LogEntry, aJ as LogOptions, aK as LogOrder, aR as MergeAbortResult, aS as MergeContinueInput, aT as MergeContinueResult, aU as MergeNamespace, aV as MergeResult, aW as MergeRunInput, aX as MvMove, aY as MvOptions, aZ as MvResult, a_ as MvSkipReason, a$ as MvSkipped, b0 as NameRevOptions, b1 as NameRevResult, b2 as NameRevStep, b3 as NotesAddInput, b4 as NotesAddResult, b5 as NotesListInput, b6 as NotesListResult, b7 as NotesNamespace, b8 as NotesReadInput, b9 as NotesReadResult, ba as NotesRemoveInput, bb as NotesRemoveResult, bc as PullOptions, bd as PullResult, be as PushOptions, bf as PushResult, bg as RangeDiffCommit, bh as RangeDiffEntry, bi as RangeDiffOptions, bj as RangeDiffRange, bk as RangeDiffStatus, bl as ReadFileAtResult, bm as RebaseAbortResult, bn as RebaseConflict, bo as RebaseInstruction, bp as RebaseInteractiveAction, bq as RebaseNamespace, br as RebaseResult, bs as RebaseRunInput, bt as RebasedCommit, bu as ReflogAction, bv as ReflogResult, bw as ReflogShowEntry, bx as RemoteAddInput, by as RemoteAddResult, bz as RemoteInfo, bA as RemoteListResult, bB as RemoteNamespace, bC as RemoteRemoveInput, bD as RemoteRemoveResult, bE as RemoteRenameInput, bF as RemoteRenameResult, bG as RemoteSetUrlInput, bH as RemoteSetUrlResult, bI as RemoteShow, bJ as RemoteShowInput, bK as RemoteShowResult, bL as ResetMode, bM as ResetOptions, bN as ResetResult, bO as RevertAbortResult, bP as RevertConflict, bQ as RevertNamespace, bR as RevertResult, bS as RevertRunInput, bT as RevertedCommit, bU as RmOptions, bV as RmResult, bW as ShortlogBy, bX as ShortlogCommit, bY as ShortlogGroup, bZ as ShortlogOptions, b_ as ShowBlobResult, b$ as ShowCommitResult, c0 as ShowInput, c1 as ShowOptions, c2 as ShowResult, c3 as ShowTagResult, c4 as ShowTreeEntry, c5 as ShowTreeResult, c6 as SparseCheckoutAddInput, c7 as SparseCheckoutAppliedResult, c8 as SparseCheckoutDisableInput, c9 as SparseCheckoutListResult, ca as SparseCheckoutNamespace, cb as SparseCheckoutReapplyInput, cc as SparseCheckoutSetInput, cd as StashApplyInput, ce as StashApplyResult, cf as StashConflict, cg as StashDropInput, ch as StashDropResult, ci as StashListEntry, cj as StashListResult, ck as StashNamespace, cl as StashPopResult, cm as StashPushInput, cn as StashPushResult, co as StatusResult, cp as SubmoduleAddEntry, cq as SubmoduleAddOptions, cr as SubmoduleAddResult, cs as SubmoduleDeinitEntry, ct as SubmoduleDeinitOptions, cu as SubmoduleDeinitResult, cv as SubmoduleInitEntry, cw as SubmoduleInitOptions, cx as SubmoduleInitResult, cy as SubmoduleListOptions, cz as SubmoduleListResult, cA as SubmoduleNamespace, cB as SubmoduleSyncEntry, cC as SubmoduleSyncOptions, cD as SubmoduleSyncResult, cE as SubmoduleUpdateEntry, cF as SubmoduleUpdateOptions, cG as SubmoduleUpdateResult, cH as TagCreateInput, cI as TagCreateResult, cJ as TagDeleteInput, cK as TagDeleteResult, cL as TagInfo, cM as TagListResult, cN as TagNamespace, cO as UncommittedBlameLine, cP as UnmergedEntry, cR as WhatchangedEntry, cS as WhatchangedOptions, cT as WorktreeAddOptions, cU as WorktreeAddResult, cV as WorktreeEntry, cW as WorktreeListResult, cX as WorktreeMoveOptions, cY as WorktreeMoveResult, cZ as WorktreeNamespace, c_ as WorktreeRemoveOptions, c$ as WorktreeRemoveResult, d0 as WorktreeSide, d1 as add, d2 as archive, d3 as bindBranchNamespace, d4 as bindBundleNamespace, d5 as bindCherryPickNamespace, d6 as bindConfigNamespace, d7 as bindMergeNamespace, d8 as bindNotesNamespace, d9 as bindRebaseNamespace, da as bindRemoteNamespace, db as bindRevertNamespace, dc as bindSparseCheckoutNamespace, dd as bindStashNamespace, de as bindSubmoduleNamespace, df as bindTagNamespace, dg as bindWorktreeNamespace, dh as blame, di as branchCreate, dj as branchDelete, dk as branchList, dl as branchRename, dn as bundleCreate, dp as bundleListHeads, dq as bundleVerify, dr as catFile, ds as checkout, dt as cherryPickAbort, du as cherryPickContinue, dv as cherryPickRun, dw as cherryPickSkip, dy as clone, dz as commit, dA as configGet, dB as configGetAll, dC as configGetRegexp, dD as configList, dE as configRemoveSection, dF as configRenameSection, dG as configSet, dH as configUnset, dI as configUnsetAll, dK as createPromisorRemote, dL as describe, dM as diff, dP as fetch, dQ as fetchMissing, dR as fsck, dS as grep, dU as init, dW as log, dX as mergeAbort, dY as mergeContinue, dZ as mergeRun, d_ as mv, d$ as nameRev, e0 as notesAdd, e1 as notesList, e2 as notesRead, e3 as notesRemove, e4 as pull, e5 as push, e6 as rangeDiff, e7 as readFileAt, e8 as rebaseAbort, e9 as rebaseContinue, ea as rebaseRun, eb as rebaseSkip, ed as reflog, ee as remoteAdd, ef as remoteList, eg as remoteRemove, eh as remoteRename, ei as remoteSetUrl, ej as remoteShow, ek as reset, el as revParse, em as revertAbort, en as revertContinue, eo as revertRun, ep as revertSkip, eq as rm, er as shortlog, es as show, eu as sparseCheckoutAdd, ev as sparseCheckoutDisable, ew as sparseCheckoutList, ex as sparseCheckoutReapply, ey as sparseCheckoutSet, eA as stashApply, eB as stashDrop, eC as stashList, eD as stashPop, eE as stashPush, eF as status, eG as submoduleAdd, eH as submoduleDeinit, eI as submoduleInit, eJ as submoduleList, eK as submoduleSync, eL as submoduleUpdate, eM as tagCreate, eN as tagDelete, eO as tagList, eP as whatchanged, eQ as worktreeAdd, eR as worktreeList, eS as worktreeMove, eT as worktreeRemove } from '../chunks/index-B5Dps3fg.js';
2
+ export { A as AddChange, C as CatFileBatchEntry, f as CopyChange, k as DeleteChange, l as DiffChange, m as DiffChangeType, T as ModifyChange, W as RenameChange, a0 as StatDiffChange, a1 as StatFields, a3 as StatTreeDiff, a4 as SubmoduleEntry, a8 as TreeDiff, a9 as TypeChangeChange } from '../chunks/reflog-entry-Cqh3QrPH.js';
3
+ import '../chunks/context-sIhhtk2u.js';
4
+ import '../chunks/http-transport-DirKfK2S.js';