@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,368 +0,0 @@
1
- import { O as ObjectId, c as FilePath, j as RefName, d as FileStat } from './context-YDw6qicq.cjs';
2
-
3
- interface AuthorIdentity {
4
- readonly name: string;
5
- readonly email: string;
6
- readonly timestamp: number;
7
- readonly timezoneOffset: string;
8
- }
9
-
10
- interface Blob {
11
- readonly type: 'blob';
12
- readonly id: ObjectId;
13
- readonly content: Uint8Array;
14
- }
15
-
16
- /**
17
- * Commit serializer. Produces the canonical Git commit-object payload
18
- * (`tree <sha>\nparent <sha>*\nauthor …\ncommitter …\n\n<message>`) that
19
- * sits inside a loose commit object. SHA equality is the contract;
20
- * disk-bytes vary by zlib compression level (loose object caveat).
21
- *
22
- * @writes
23
- * surface: commit
24
- * kind: equivalent-under-readback
25
- * format: git-commit-object
26
- */
27
-
28
- interface ExtraHeader {
29
- readonly key: string;
30
- readonly value: string;
31
- }
32
- interface CommitData {
33
- readonly tree: ObjectId;
34
- readonly parents: ReadonlyArray<ObjectId>;
35
- readonly author: AuthorIdentity;
36
- readonly committer: AuthorIdentity;
37
- readonly message: string;
38
- readonly gpgSignature?: string;
39
- readonly extraHeaders: ReadonlyArray<ExtraHeader>;
40
- }
41
- interface Commit {
42
- readonly type: 'commit';
43
- readonly id: ObjectId;
44
- readonly data: CommitData;
45
- }
46
-
47
- /**
48
- * A validated git-config key. Branded to prevent string-typed callers from
49
- * passing a raw, unvalidated string into config primitives. Construct via
50
- * `parseConfigKey` only.
51
- */
52
- type ConfigKey = string & {
53
- readonly __brand: 'ConfigKey';
54
- };
55
- /**
56
- * The four canonical git-config scopes. Order in the union is also the read
57
- * precedence (lowest precedence first): system → global → local → worktree.
58
- */
59
- type ConfigScope = 'system' | 'global' | 'local' | 'worktree';
60
-
61
- declare const FILE_MODE: {
62
- readonly REGULAR: "100644";
63
- readonly EXECUTABLE: "100755";
64
- readonly SYMLINK: "120000";
65
- readonly DIRECTORY: "40000";
66
- readonly GITLINK: "160000";
67
- };
68
- type FileMode = (typeof FILE_MODE)[keyof typeof FILE_MODE];
69
-
70
- type ObjectType = 'blob' | 'tree' | 'commit' | 'tag';
71
-
72
- /**
73
- * Tag serializer. Produces the canonical annotated-tag payload
74
- * (`object <sha>\ntype <type>\ntag <name>\ntagger …\n\n<message>`) inside a
75
- * loose tag object.
76
- *
77
- * @writes
78
- * surface: tag
79
- * kind: equivalent-under-readback
80
- * format: git-tag-object
81
- */
82
-
83
- interface TagData {
84
- readonly object: ObjectId;
85
- readonly objectType: ObjectType;
86
- readonly tagName: string;
87
- readonly tagger?: AuthorIdentity;
88
- readonly message: string;
89
- readonly gpgSignature?: string;
90
- readonly extraHeaders: ReadonlyArray<ExtraHeader>;
91
- }
92
- interface Tag {
93
- readonly type: 'tag';
94
- readonly id: ObjectId;
95
- readonly data: TagData;
96
- }
97
-
98
- interface TreeEntry {
99
- readonly mode: FileMode;
100
- readonly name: string;
101
- readonly id: ObjectId;
102
- }
103
- interface Tree {
104
- readonly type: 'tree';
105
- readonly id: ObjectId;
106
- readonly entries: ReadonlyArray<TreeEntry>;
107
- }
108
-
109
- type GitObject = Blob | Tree | Commit | Tag;
110
-
111
- interface AddChange {
112
- readonly type: 'add';
113
- readonly newPath: FilePath;
114
- readonly newId: ObjectId;
115
- readonly newMode: FileMode;
116
- }
117
- interface DeleteChange {
118
- readonly type: 'delete';
119
- readonly oldPath: FilePath;
120
- readonly oldId: ObjectId;
121
- readonly oldMode: FileMode;
122
- }
123
- interface ModifyChange {
124
- readonly type: 'modify';
125
- readonly path: FilePath;
126
- readonly oldId: ObjectId;
127
- readonly newId: ObjectId;
128
- readonly oldMode: FileMode;
129
- readonly newMode: FileMode;
130
- }
131
- interface RenameChange {
132
- readonly type: 'rename';
133
- readonly oldPath: FilePath;
134
- readonly newPath: FilePath;
135
- readonly id: ObjectId;
136
- readonly mode: FileMode;
137
- }
138
- interface TypeChangeChange {
139
- readonly type: 'type-change';
140
- readonly path: FilePath;
141
- readonly oldId: ObjectId;
142
- readonly newId: ObjectId;
143
- readonly oldMode: FileMode;
144
- readonly newMode: FileMode;
145
- }
146
- type DiffChange = AddChange | DeleteChange | ModifyChange | RenameChange | TypeChangeChange;
147
- interface TreeDiff {
148
- readonly changes: ReadonlyArray<DiffChange>;
149
- }
150
-
151
- interface RenameDetectOptions {
152
- readonly limit?: number;
153
- readonly maxSameIdDeletes?: number;
154
- }
155
-
156
- /**
157
- * Primitive option shapes, walker value types, and shared constants.
158
- * Defined in one location to avoid circular imports between primitive modules.
159
- */
160
-
161
- /** Max symbolic-ref dereferences resolveRef will follow. */
162
- declare const MAX_SYMBOLIC_REF_DEPTH = 5;
163
- /** Max tag-peel hops resolveRef / readTree will follow when peeling. */
164
- declare const MAX_PEEL_DEPTH = 5;
165
- /** Max seeds walkCommits.from can contain. */
166
- declare const MAX_WALK_SEEDS = 1024;
167
- /** Hard cap on walkCommits' pending queue size to prevent unbounded heap growth. */
168
- declare const MAX_WALK_QUEUE_SIZE: number;
169
- /** Max.git/index file size readIndex will accept. */
170
- declare const MAX_INDEX_BYTES: number;
171
- /** Max commit message byte length createCommit will accept. */
172
- declare const MAX_COMMIT_MESSAGE_BYTES: number;
173
- /**
174
- * Per-file size cap enforced by `add --all` before reading working-tree
175
- * bytes into memory. Mirrors `MAX_CONFLICT_OUTPUT_BYTES` (256 MiB) so the
176
- * write-side memory ceiling matches the read-side ceiling.
177
- * See `docs/adr/032-add-all-large-file-guard.md`.
178
- */
179
- declare const MAX_WORKING_TREE_BLOB_BYTES: number;
180
- /**
181
- * Per-file cap on `.gitignore`, `.git/info/exclude`, and the global
182
- * excludesFile. 1 MiB leaves a 20× margin over real-world max-size
183
- * gitignore corpora. See `docs/adr/036-gitignore-bounded-read.md`.
184
- */
185
- declare const MAX_GITIGNORE_BYTES: number;
186
- /**
187
- * Per-file cap on a single `.git/logs/<ref>` reflog file. 16 MiB is generous
188
- * — `reflog expire` is the size-management story; this guard only stops an
189
- * adversarial or corrupt log from being buffered unbounded into memory.
190
- */
191
- declare const MAX_REFLOG_BYTES: number;
192
- interface ReadObjectOptions {
193
- readonly verifyHash?: boolean;
194
- /**
195
- * Reject objects whose serialised payload exceeds this byte count, before
196
- * inflating the full content into memory. Counts the raw object content
197
- * (post-inflate, pre-loose-header). When unset, no cap applies.
198
- *
199
- * Used by `merge`'s content merger to bound peak memory when an adversarial
200
- * remote ships pathologically large blobs. See `docs/design/phase-13-8-
201
- * bounded-object-reads.md`.
202
- */
203
- readonly maxBytes?: number;
204
- }
205
- interface ResolveRefOptions {
206
- readonly peel?: boolean;
207
- readonly maxSymbolicDepth?: number;
208
- readonly maxPeelDepth?: number;
209
- }
210
- /**
211
- * `updateRef` option shapes. A write requires a `reflogMessage` — git's
212
- * builtins always supply a reason string; the type checker forces every
213
- * present and future ref write to state why the ref moved. A delete drops the
214
- * reflog file, so it carries no message.
215
- */
216
- type UpdateRefOptions = {
217
- readonly delete?: false;
218
- readonly expected?: ObjectId | 'absent';
219
- readonly reflogMessage: string;
220
- } | {
221
- readonly delete: true;
222
- readonly expected?: ObjectId | 'absent';
223
- };
224
- interface WalkCommitsOptions {
225
- readonly from: ReadonlyArray<ObjectId>;
226
- readonly until?: ReadonlyArray<ObjectId>;
227
- readonly order?: 'topo' | 'first-parent';
228
- readonly ignoreMissing?: boolean;
229
- readonly verifyHash?: boolean;
230
- /**
231
- * Commits whose parents must NOT be enqueued. Used for shallow boundaries
232
- * . The commit itself is still yielded — only its parents are
233
- * skipped. Callers that want to also skip the boundary commit pass it in
234
- * `until`.
235
- */
236
- readonly shallow?: ReadonlySet<ObjectId>;
237
- }
238
- /** Maximum `have` lines a single-round fetch will send. */
239
- declare const MAX_HAVES = 256;
240
- /** Hard cap on objects enumerated for a single push. design */
241
- declare const MAX_PUSH_OBJECTS = 1000000;
242
- interface WalkTreeEntry {
243
- readonly path: FilePath;
244
- readonly id: ObjectId;
245
- readonly mode: FileMode;
246
- }
247
- interface WalkTreeOptions {
248
- readonly recursive?: boolean;
249
- readonly maxDepth?: number;
250
- readonly maxEntries?: number;
251
- }
252
- interface WalkWorkingTreeEntry {
253
- readonly path: FilePath;
254
- readonly stat: FileStat;
255
- }
256
- type WalkIgnorePredicate = (path: FilePath, isDirectory: boolean) => boolean | Promise<boolean>;
257
- interface WalkWorkingTreeOptions {
258
- readonly maxDepth?: number;
259
- readonly maxEntries?: number;
260
- /**
261
- * predicate. Invoked on every directory BEFORE descent
262
- * (returning `true` prunes the entire subtree, skipping its `lstat`
263
- * cost) and on every leaf BEFORE yielding (returning `true` drops
264
- * the leaf). May be sync or async.
265
- */
266
- readonly ignore?: WalkIgnorePredicate;
267
- }
268
- interface CreateCommitInput {
269
- readonly tree: ObjectId;
270
- readonly parents: ReadonlyArray<ObjectId>;
271
- readonly author: AuthorIdentity;
272
- readonly committer: AuthorIdentity;
273
- readonly message: string;
274
- readonly gpgSignature?: string;
275
- readonly extraHeaders?: ReadonlyArray<ExtraHeader>;
276
- }
277
- type DiffTreesInput = Tree | ObjectId | undefined;
278
- interface DiffTreesOptions {
279
- readonly detectRenames?: boolean;
280
- readonly renameOptions?: RenameDetectOptions;
281
- }
282
- /**
283
- * Per-file cap on a single `.gitmodules` blob. 1 MiB matches the
284
- * `MAX_GITIGNORE_BYTES` budget: real `.gitmodules` files are KB-scale even in
285
- * very large superprojects, so a 1 MiB ceiling is a generous DoS guard
286
- * applied before inflate.
287
- */
288
- declare const MAX_GITMODULES_BYTES: number;
289
- /**
290
- * Recursion backstop for `walkSubmodules` — the cycle guard (visited gitdir
291
- * set) handles the genuine-cycle case; this cap stops a pathologically deep
292
- * but acyclic nest from running away.
293
- */
294
- declare const MAX_SUBMODULE_DEPTH = 100;
295
- /** One submodule surfaced by `walkSubmodules`: a gitlink joined with its `.gitmodules` row. */
296
- interface SubmoduleEntry {
297
- /**
298
- * The `[submodule "<name>"]` subsection name in the `.gitmodules` of the
299
- * tree that contains this gitlink. Falls back to `path` when no row matches
300
- * the gitlink (a gitlink committed without a corresponding config entry).
301
- */
302
- readonly name: string;
303
- /** Slash-joined path from the *superproject* root to the gitlink. */
304
- readonly path: FilePath;
305
- /** `submodule.<name>.url` — absent when no `.gitmodules` row matched. */
306
- readonly url?: string;
307
- /** `submodule.<name>.branch` — absent when the key is unset. */
308
- readonly branch?: string;
309
- /** The commit object id the gitlink pins (the tree entry's id). */
310
- readonly commit: ObjectId;
311
- /** Recursion depth; 0 for a direct submodule of the superproject. */
312
- readonly depth: number;
313
- /** Path of the containing submodule; absent for `depth === 0` entries. */
314
- readonly parent?: FilePath;
315
- }
316
- /**
317
- * One entry yielded by `catFileBatch` — a discriminated union so that a
318
- * single bad id never aborts the stream. `ok: true` carries the parsed
319
- * object plus its canonical payload size (matches the `<size>` field of
320
- * `git cat-file --batch`'s header). `ok: false` is shaped to extend later:
321
- * `reason` is a literal union so a future variant is an additive change.
322
- */
323
- /**
324
- * Optional knobs for the `catFileBatch` primitive — currently a single
325
- * `maxBytes` cap forwarded to each per-id `readObject` call so a long
326
- * batch over untrusted ids cannot exhaust the heap. Defaults to no cap.
327
- */
328
- interface CatFileBatchOptions {
329
- /**
330
- * Per-object byte cap. Rejected pre-inflate; same semantics as
331
- * `ReadObjectOptions.maxBytes`. When unset, no cap applies (parity
332
- * with `readObject`).
333
- */
334
- readonly maxBytes?: number;
335
- }
336
- type CatFileBatchEntry = {
337
- readonly ok: true;
338
- readonly id: ObjectId;
339
- readonly type: GitObject['type'];
340
- readonly size: number;
341
- readonly object: GitObject;
342
- } | {
343
- readonly ok: false;
344
- readonly id: ObjectId;
345
- readonly reason: 'missing';
346
- };
347
- interface WalkSubmodulesOptions {
348
- /** Tree-ish to walk. Default: `HEAD`. */
349
- readonly ref?: RefName | ObjectId;
350
- /** Descend into nested submodules' own `.gitmodules`. Default: `false`. */
351
- readonly recursive?: boolean;
352
- /**
353
- * Cap on recursion depth. Default: `MAX_SUBMODULE_DEPTH`. Entries at exactly
354
- * this depth are yielded but not recursed into.
355
- */
356
- readonly maxDepth?: number;
357
- }
358
-
359
- /** One line of a reflog file: a single ref movement from `oldId` to `newId`. */
360
- interface ReflogEntry {
361
- readonly oldId: ObjectId;
362
- readonly newId: ObjectId;
363
- readonly identity: AuthorIdentity;
364
- readonly message: string;
365
- }
366
-
367
- export { MAX_COMMIT_MESSAGE_BYTES as M, MAX_GITIGNORE_BYTES as g, MAX_GITMODULES_BYTES as h, MAX_HAVES as i, MAX_INDEX_BYTES as j, MAX_PEEL_DEPTH as k, MAX_PUSH_OBJECTS as l, MAX_REFLOG_BYTES as m, MAX_SUBMODULE_DEPTH as n, MAX_SYMBOLIC_REF_DEPTH as o, MAX_WALK_QUEUE_SIZE as p, MAX_WALK_SEEDS as q, MAX_WORKING_TREE_BLOB_BYTES as r };
368
- export type { AuthorIdentity as A, Blob as B, CatFileBatchEntry as C, DiffTreesInput as D, Commit as E, FileMode as F, GitObject as G, TreeEntry as H, ReflogEntry as R, SubmoduleEntry as S, TreeDiff as T, UpdateRefOptions as U, WalkCommitsOptions as W, Tree as a, ConfigScope as b, ConfigKey as c, CatFileBatchOptions as d, CreateCommitInput as e, DiffTreesOptions as f, ReadObjectOptions as s, ResolveRefOptions as t, WalkIgnorePredicate as u, WalkSubmodulesOptions as v, WalkTreeEntry as w, WalkTreeOptions as x, WalkWorkingTreeEntry as y, WalkWorkingTreeOptions as z };