@scolladon/tsgit 1.1.0 → 1.2.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 (119) hide show
  1. package/README.md +29 -252
  2. package/dist/cjs/adapters/browser/index.cjs +1 -1
  3. package/dist/cjs/adapters/memory/index.cjs +1 -1
  4. package/dist/cjs/adapters/memory/index.cjs.map +1 -1
  5. package/dist/cjs/adapters/node/index.cjs +1 -1
  6. package/dist/cjs/adapters/node/index.cjs.map +1 -1
  7. package/dist/cjs/chunks/browser-http-transport-D4NH-8oJ.cjs +2 -0
  8. package/dist/cjs/chunks/browser-http-transport-D4NH-8oJ.cjs.map +1 -0
  9. package/dist/cjs/chunks/context-BcoAzPuU.cjs.map +1 -1
  10. package/dist/cjs/chunks/{error-CqLvhejR.cjs → error-CDLOBdNU.cjs} +2 -2
  11. package/dist/cjs/chunks/error-CDLOBdNU.cjs.map +1 -0
  12. package/dist/cjs/chunks/index-BVArBKuk.cjs +2 -0
  13. package/dist/cjs/chunks/index-BVArBKuk.cjs.map +1 -0
  14. package/dist/cjs/chunks/index-DE9HSiWf.cjs +2 -0
  15. package/dist/cjs/chunks/index-DE9HSiWf.cjs.map +1 -0
  16. package/dist/cjs/chunks/{logger-C8Z5BfFF.cjs → logger-CVG0zcPH.cjs} +2 -2
  17. package/dist/cjs/chunks/{logger-C8Z5BfFF.cjs.map → logger-CVG0zcPH.cjs.map} +1 -1
  18. package/dist/cjs/chunks/{memory-http-transport-Pjyme5KN.cjs → memory-http-transport-DXwDGKtR.cjs} +2 -2
  19. package/dist/cjs/chunks/memory-http-transport-DXwDGKtR.cjs.map +1 -0
  20. package/dist/cjs/chunks/node-http-transport-vrbnNEDb.cjs +2 -0
  21. package/dist/cjs/chunks/node-http-transport-vrbnNEDb.cjs.map +1 -0
  22. package/dist/cjs/chunks/{progress-CntEbiuo.cjs → progress-Bj2w-90A.cjs} +2 -2
  23. package/dist/cjs/chunks/{progress-CntEbiuo.cjs.map → progress-Bj2w-90A.cjs.map} +1 -1
  24. package/dist/cjs/chunks/repository-BJwTSiGf.cjs +2 -0
  25. package/dist/cjs/chunks/repository-BJwTSiGf.cjs.map +1 -0
  26. package/dist/cjs/commands/index.cjs +1 -1
  27. package/dist/cjs/index.browser.cjs +1 -1
  28. package/dist/cjs/index.cjs +1 -1
  29. package/dist/cjs/index.default.cjs +1 -1
  30. package/dist/cjs/index.node.cjs +1 -1
  31. package/dist/cjs/index.node.cjs.map +1 -1
  32. package/dist/cjs/primitives/index.cjs +1 -1
  33. package/dist/esm/adapters/browser/index.js +1 -1
  34. package/dist/esm/adapters/memory/index.js +1 -1
  35. package/dist/esm/adapters/memory/index.js.map +1 -1
  36. package/dist/esm/adapters/node/index.js +1 -1
  37. package/dist/esm/adapters/node/index.js.map +1 -1
  38. package/dist/esm/chunks/browser-http-transport-DL8bkNdg.js +2 -0
  39. package/dist/esm/chunks/browser-http-transport-DL8bkNdg.js.map +1 -0
  40. package/dist/esm/chunks/context-CumKOV7K.js.map +1 -1
  41. package/dist/esm/chunks/{error-BN9rdQ33.js → error-MOmSzp9Z.js} +2 -2
  42. package/dist/esm/chunks/error-MOmSzp9Z.js.map +1 -0
  43. package/dist/esm/chunks/index-BjmofbKE.js +2 -0
  44. package/dist/esm/chunks/index-BjmofbKE.js.map +1 -0
  45. package/dist/esm/chunks/index-Jh5R-UmU.js +2 -0
  46. package/dist/esm/chunks/index-Jh5R-UmU.js.map +1 -0
  47. package/dist/esm/chunks/{logger-BLZbLzva.js → logger-DP2cCpvL.js} +2 -2
  48. package/dist/esm/chunks/{logger-BLZbLzva.js.map → logger-DP2cCpvL.js.map} +1 -1
  49. package/dist/esm/chunks/memory-http-transport-COJU6VOL.js +2 -0
  50. package/dist/esm/chunks/memory-http-transport-COJU6VOL.js.map +1 -0
  51. package/dist/esm/chunks/node-http-transport-DYCFIJbc.js +2 -0
  52. package/dist/esm/chunks/node-http-transport-DYCFIJbc.js.map +1 -0
  53. package/dist/esm/chunks/{progress-DJU_f66N.js → progress-NePjO3Kd.js} +2 -2
  54. package/dist/esm/chunks/{progress-DJU_f66N.js.map → progress-NePjO3Kd.js.map} +1 -1
  55. package/dist/esm/chunks/repository-Cs-dbHqO.js +2 -0
  56. package/dist/esm/chunks/repository-Cs-dbHqO.js.map +1 -0
  57. package/dist/esm/commands/index.js +1 -1
  58. package/dist/esm/index.browser.js +1 -1
  59. package/dist/esm/index.default.js +1 -1
  60. package/dist/esm/index.js +1 -1
  61. package/dist/esm/index.node.js +1 -1
  62. package/dist/esm/index.node.js.map +1 -1
  63. package/dist/esm/primitives/index.js +1 -1
  64. package/dist/types/adapters/browser/index.d.cts +2 -1
  65. package/dist/types/adapters/browser/index.d.ts +2 -1
  66. package/dist/types/adapters/memory/index.d.cts +21 -2
  67. package/dist/types/adapters/memory/index.d.ts +21 -2
  68. package/dist/types/adapters/node/index.d.cts +64 -3
  69. package/dist/types/adapters/node/index.d.ts +64 -3
  70. package/dist/types/chunks/{context-o5TPfMB2.d.ts → context-BORy7yXb.d.ts} +97 -2
  71. package/dist/types/chunks/{context-D84z1i5F.d.cts → context-CMrHCVwK.d.cts} +97 -2
  72. package/dist/types/chunks/reflog-entry-BIf-zt__.d.cts +331 -0
  73. package/dist/types/chunks/reflog-entry-D9P2hCgv.d.ts +331 -0
  74. package/dist/types/chunks/{repository-23evW2h-.d.cts → repository-BqibvTOu.d.cts} +21 -3
  75. package/dist/types/chunks/{repository-BT7Xq1kJ.d.ts → repository-C4rN09Am.d.ts} +21 -3
  76. package/dist/types/chunks/write-tree-B8G6kgTy.d.cts +154 -0
  77. package/dist/types/chunks/write-tree-BXCDChvv.d.ts +154 -0
  78. package/dist/types/commands/index.d.cts +152 -6
  79. package/dist/types/commands/index.d.ts +152 -6
  80. package/dist/types/index.browser.d.cts +4 -4
  81. package/dist/types/index.browser.d.ts +4 -4
  82. package/dist/types/index.d.cts +4 -4
  83. package/dist/types/index.d.ts +4 -4
  84. package/dist/types/index.default.d.cts +4 -4
  85. package/dist/types/index.default.d.ts +4 -4
  86. package/dist/types/index.node.d.cts +4 -4
  87. package/dist/types/index.node.d.ts +4 -4
  88. package/dist/types/primitives/index.d.cts +192 -7
  89. package/dist/types/primitives/index.d.ts +192 -7
  90. package/package.json +40 -2
  91. package/dist/cjs/chunks/browser-http-transport-DcG05jw3.cjs +0 -2
  92. package/dist/cjs/chunks/browser-http-transport-DcG05jw3.cjs.map +0 -1
  93. package/dist/cjs/chunks/error-CqLvhejR.cjs.map +0 -1
  94. package/dist/cjs/chunks/index-BcxdLkNe.cjs +0 -2
  95. package/dist/cjs/chunks/index-BcxdLkNe.cjs.map +0 -1
  96. package/dist/cjs/chunks/index-D5Nd-Mks.cjs +0 -2
  97. package/dist/cjs/chunks/index-D5Nd-Mks.cjs.map +0 -1
  98. package/dist/cjs/chunks/memory-http-transport-Pjyme5KN.cjs.map +0 -1
  99. package/dist/cjs/chunks/node-http-transport-UkW5eEm3.cjs +0 -2
  100. package/dist/cjs/chunks/node-http-transport-UkW5eEm3.cjs.map +0 -1
  101. package/dist/cjs/chunks/repository-B_jx2AKW.cjs +0 -2
  102. package/dist/cjs/chunks/repository-B_jx2AKW.cjs.map +0 -1
  103. package/dist/esm/chunks/browser-http-transport-COFgnEyq.js +0 -2
  104. package/dist/esm/chunks/browser-http-transport-COFgnEyq.js.map +0 -1
  105. package/dist/esm/chunks/error-BN9rdQ33.js.map +0 -1
  106. package/dist/esm/chunks/index-BdV37p4e.js +0 -2
  107. package/dist/esm/chunks/index-BdV37p4e.js.map +0 -1
  108. package/dist/esm/chunks/index-BkRJ9-Im.js +0 -2
  109. package/dist/esm/chunks/index-BkRJ9-Im.js.map +0 -1
  110. package/dist/esm/chunks/memory-http-transport-DRYdYgiE.js +0 -2
  111. package/dist/esm/chunks/memory-http-transport-DRYdYgiE.js.map +0 -1
  112. package/dist/esm/chunks/node-http-transport-Bp5cFZCt.js +0 -2
  113. package/dist/esm/chunks/node-http-transport-Bp5cFZCt.js.map +0 -1
  114. package/dist/esm/chunks/repository-DiagDiT_.js +0 -2
  115. package/dist/esm/chunks/repository-DiagDiT_.js.map +0 -1
  116. package/dist/types/chunks/diff-change-Bm1zvVsC.d.cts +0 -59
  117. package/dist/types/chunks/diff-change-alGRzD_j.d.ts +0 -59
  118. package/dist/types/chunks/write-tree-DNjhjS3t.d.ts +0 -282
  119. package/dist/types/chunks/write-tree-DVp0RJ_r.d.cts +0 -282
@@ -0,0 +1,154 @@
1
+ import { O as ObjectId, d as FilePath, b as Context, R as RefName, h as HookName } from './context-BORy7yXb.js';
2
+ import { F as FileMode, a as CatFileBatchOptions, C as CatFileBatchEntry, c as CreateCommitInput, D as DiffTreesInput, d as DiffTreesOptions, s as TreeDiff, R as ReadObjectOptions, B as Blob, G as GitObject, T as Tree, r as ResolveRefOptions, U as UpdateRefOptions, W as WalkCommitsOptions, b as Commit, v as WalkSubmodulesOptions, S as SubmoduleEntry, x as WalkTreeOptions, w as WalkTreeEntry, z as WalkWorkingTreeOptions, y as WalkWorkingTreeEntry, t as TreeEntry } from './reflog-entry-D9P2hCgv.js';
3
+
4
+ interface IndexEntryFlags {
5
+ readonly assumeValid: boolean;
6
+ readonly stage: 0 | 1 | 2 | 3;
7
+ /** Index v3 extended flag — the path is intentionally absent from the working tree. */
8
+ readonly skipWorktree: boolean;
9
+ /** Index v3 extended flag — `git add -N` placeholder. Modelled for faithful round-tripping. */
10
+ readonly intentToAdd: boolean;
11
+ }
12
+ interface IndexEntry {
13
+ readonly ctimeSeconds: number;
14
+ readonly ctimeNanoseconds: number;
15
+ readonly mtimeSeconds: number;
16
+ readonly mtimeNanoseconds: number;
17
+ readonly dev: number;
18
+ readonly ino: number;
19
+ readonly mode: FileMode;
20
+ readonly uid: number;
21
+ readonly gid: number;
22
+ readonly fileSize: number;
23
+ readonly id: ObjectId;
24
+ readonly flags: IndexEntryFlags;
25
+ readonly path: FilePath;
26
+ }
27
+ interface IndexExtension {
28
+ readonly signature: string;
29
+ readonly data: Uint8Array;
30
+ }
31
+ interface GitIndex {
32
+ readonly version: 2 | 3;
33
+ readonly entries: ReadonlyArray<IndexEntry>;
34
+ readonly extensions: ReadonlyArray<IndexExtension>;
35
+ }
36
+
37
+ declare function catFileBatch(ctx: Context, ids: AsyncIterable<ObjectId> | Iterable<ObjectId>, options?: CatFileBatchOptions): AsyncIterable<CatFileBatchEntry>;
38
+
39
+ declare function createCommit(ctx: Context, input: CreateCommitInput): Promise<ObjectId>;
40
+
41
+ declare function diffTrees(ctx: Context, a: DiffTreesInput, b: DiffTreesInput, options?: DiffTreesOptions): Promise<TreeDiff>;
42
+
43
+ /**
44
+ * Compute a merge base — the first commit reachable from BOTH `a` and `b`.
45
+ *
46
+ * Algorithm: bidirectional BFS with two visited sets. After each layer
47
+ * advance, check the intersection. When non-empty, return the
48
+ * lexicographically smallest oid (deterministic tie-breaker).
49
+ *
50
+ * Returns `undefined` for unrelated histories. Documented limitation: cherry-picks
51
+ * and criss-cross merges may yield non-optimal bases — `recursive`-strategy
52
+ * multi-base resolution is v2.
53
+ */
54
+ declare const mergeBase: (ctx: Context, a: ObjectId, b: ObjectId) => Promise<ObjectId | undefined>;
55
+
56
+ /**
57
+ * Pure path helpers composing `ctx.layout.gitDir` with known sub-paths.
58
+ * No I/O. No port access. Primitive step 3.
59
+ */
60
+
61
+ /**
62
+ * Repository working-tree root. Returns the workDir from the current context;
63
+ * facade-tier code is responsible for discovery / realpath pinning
64
+ * at construction time. Primitives consume the already-resolved path.
65
+ */
66
+ declare const getRepoRoot: (ctx: Context) => FilePath;
67
+ declare const sparseCheckoutPath: (gitDir: string) => string;
68
+
69
+ declare function readBlob(ctx: Context, id: ObjectId, options?: ReadObjectOptions): Promise<Blob>;
70
+
71
+ declare function readIndex(ctx: Context): Promise<GitIndex>;
72
+
73
+ declare function readObject(ctx: Context, id: ObjectId, options?: ReadObjectOptions): Promise<GitObject>;
74
+
75
+ declare function readTree(ctx: Context, ref: RefName | ObjectId): Promise<Tree>;
76
+
77
+ /**
78
+ * The single reflog *writer*. Self-contained: reads config, applies the gate,
79
+ * resolves identity, sanitises the message, and appends one entry. Callers
80
+ * supply only a human-readable message.
81
+ */
82
+
83
+ /**
84
+ * Append a reflog entry for `ref` if logging applies. A no-op when the gate is
85
+ * closed for `ref` — once a reflog file exists every update appends to it,
86
+ * otherwise the `core.logAllRefUpdates` prefix rule decides.
87
+ */
88
+ declare function recordRefUpdate(ctx: Context, ref: RefName, oldId: ObjectId, newId: ObjectId, message: string): Promise<void>;
89
+
90
+ declare function resolveRef(ctx: Context, name: RefName | 'HEAD', options?: ResolveRefOptions): Promise<ObjectId>;
91
+
92
+ /** Optional arguments and stdin a caller threads into a hook invocation. */
93
+ interface HookInput {
94
+ readonly args?: ReadonlyArray<string>;
95
+ readonly stdin?: string;
96
+ }
97
+ /**
98
+ * Run a named git hook through `ctx.hooks`. A no-op when no `HookRunner` is
99
+ * wired (browser, or opted out), when the hook file is absent / not executable
100
+ * (`skipped`), or when the hook exits 0. Throws `HOOK_FAILED` on a non-zero
101
+ * exit.
102
+ */
103
+ declare const runHook: (ctx: Context, name: HookName, input?: HookInput) => Promise<void>;
104
+
105
+ declare function updateRef(ctx: Context, name: RefName, newId: ObjectId, options: UpdateRefOptions): Promise<void>;
106
+
107
+ declare function walkCommits(ctx: Context, options: WalkCommitsOptions): AsyncIterable<Commit>;
108
+
109
+ /**
110
+ * Yield every gitlink reachable in `ref`'s tree, joined with its `.gitmodules`
111
+ * metadata. With `recursive: true`, descend into each nested submodule whose
112
+ * absorbed gitdir (`${gitDir}/modules/<name>`) is locally available; nested
113
+ * yields carry `depth >= 1` and a `parent` path. Uninitialised / missing /
114
+ * cyclic nested submodules contribute their own entry but no children — the
115
+ * absence of further yields is the signal, matching `git submodule status
116
+ * --recursive`.
117
+ */
118
+ declare function walkSubmodules(ctx: Context, options?: WalkSubmodulesOptions): AsyncIterable<SubmoduleEntry>;
119
+
120
+ declare function walkTree(ctx: Context, treeIdOrObject: ObjectId | Tree, options?: WalkTreeOptions): AsyncIterable<WalkTreeEntry>;
121
+
122
+ /**
123
+ * Depth-first walk of the working tree starting at `ctx.layout.workDir`.
124
+ *
125
+ * Yields leaf entries (files and symlinks) as `{ path, stat }`. Directories
126
+ * are descended into, not yielded. `.git` at any level is skipped
127
+ * (case-insensitive, NTFS-trimmed). Embedded repositories (directories
128
+ * containing a `.git` child) are skipped entirely — yields nothing under
129
+ * them. Symlinks are surfaced via `lstat` (no follow); a symlink to a
130
+ * directory is yielded as a leaf, not descended into.
131
+ *
132
+ * The host repository's own `.git` is NOT treated as an embedded-repo
133
+ * marker — at the workDir root we only skip the `.git` entry itself, not
134
+ * the workDir.
135
+ */
136
+ declare function walkWorkingTree(ctx: Context, options?: WalkWorkingTreeOptions): AsyncIterable<WalkWorkingTreeEntry>;
137
+
138
+ declare function writeObject(ctx: Context, object: GitObject): Promise<ObjectId>;
139
+
140
+ /**
141
+ * Write a symbolic ref atomically. Used for HEAD updates that point at a
142
+ * branch, branch renames affecting the current HEAD, and `clone`/`init`
143
+ * to set the initial HEAD.
144
+ *
145
+ * Single-level only in v1: target MUST be a direct ref name (no chained
146
+ * symrefs). Validation runs through `validateRefName` for both `name` and
147
+ * `target` — invalid inputs throw INVALID_REF before any I/O.
148
+ */
149
+ declare const writeSymbolicRef: (ctx: Context, name: RefName, target: RefName) => Promise<void>;
150
+
151
+ declare function writeTree(ctx: Context, entries: ReadonlyArray<TreeEntry>): Promise<ObjectId>;
152
+
153
+ export { createCommit as a, readIndex as b, catFileBatch as c, diffTrees as d, readObject as e, readTree as f, getRepoRoot as g, recordRefUpdate as h, resolveRef as i, runHook as j, walkSubmodules as k, walkTree as l, mergeBase as m, walkWorkingTree as n, writeObject as o, writeSymbolicRef as p, writeTree as q, readBlob as r, sparseCheckoutPath as s, updateRef as u, walkCommits as w };
154
+ export type { GitIndex as G, HookInput as H, IndexEntry as I };
@@ -1,5 +1,5 @@
1
- import { d as FilePath, b as Context, R as RefName, O as ObjectId } from '../chunks/context-D84z1i5F.cjs';
2
- import { A as AuthorIdentity, T as TreeDiff } from '../chunks/diff-change-Bm1zvVsC.cjs';
1
+ import { d as FilePath, b as Context, R as RefName, O as ObjectId, m as PromisorRemote } from '../chunks/context-CMrHCVwK.cjs';
2
+ import { C as CatFileBatchEntry, A as AuthorIdentity, s as TreeDiff, q as ReflogEntry, S as SubmoduleEntry } from '../chunks/reflog-entry-BIf-zt__.cjs';
3
3
  import '../chunks/http-transport-DirKfK2S.cjs';
4
4
 
5
5
  interface AddOptions {
@@ -66,6 +66,30 @@ type BranchResult = {
66
66
  };
67
67
  declare const branch: (ctx: Context, action: BranchAction) => Promise<BranchResult>;
68
68
 
69
+ type ConflictType = 'content' | 'add-add' | 'modify-delete' | 'type-change' | 'rename-rename' | 'gitlink' | 'binary';
70
+
71
+ /**
72
+ * Tier-1 `catFile` command — wraps the streaming `catFileBatch` primitive in
73
+ * a request/response shape matching the other v2 commands (`submodules`,
74
+ * `log`, `reflog`). String ids are coerced at the boundary via
75
+ * `ObjectId.from`, which throws `INVALID_OBJECT_ID` on malformed input
76
+ * before any read happens.
77
+ *
78
+ * For streaming use cases, callers reach for `repo.primitives.catFileBatch`
79
+ * directly — see `docs/design/cat-file-batch.md` §2.
80
+ */
81
+
82
+ interface CatFileInput {
83
+ readonly ids: ReadonlyArray<ObjectId | string>;
84
+ /** Per-object byte cap; forwarded to the underlying `readObject` call. */
85
+ readonly maxBytes?: number;
86
+ }
87
+ interface CatFileResult {
88
+ readonly kind: 'batch';
89
+ readonly entries: ReadonlyArray<CatFileBatchEntry>;
90
+ }
91
+ declare const catFile: (ctx: Context, opts: CatFileInput) => Promise<CatFileResult>;
92
+
69
93
  interface CheckoutSwitchOptions {
70
94
  readonly target: string;
71
95
  readonly detach?: boolean;
@@ -100,6 +124,12 @@ interface CloneOptions {
100
124
  readonly resolver?: DnsResolver;
101
125
  readonly allowInsecure?: boolean;
102
126
  readonly allowPrivateNetworks?: boolean;
127
+ /**
128
+ * Partial-clone object filter (`blob:none`, `blob:limit=<n>`, `tree:<n>`).
129
+ * When set, the server omits the filtered objects, a promisor remote is
130
+ * recorded in `.git/config`, and omitted objects are lazy-fetched on read.
131
+ */
132
+ readonly filter?: string;
103
133
  }
104
134
  interface CloneResult {
105
135
  readonly path: FilePath;
@@ -117,6 +147,8 @@ interface CommitOptions {
117
147
  readonly committer?: AuthorIdentity;
118
148
  readonly allowEmpty?: boolean;
119
149
  readonly allowEmptyMessage?: boolean;
150
+ /** Skip the `pre-commit` and `commit-msg` hooks (git's `--no-verify`). */
151
+ readonly noVerify?: boolean;
120
152
  }
121
153
  interface CommitResult {
122
154
  readonly id: ObjectId;
@@ -135,8 +167,6 @@ interface CommitResult {
135
167
  */
136
168
  declare const commit: (ctx: Context, opts: CommitOptions) => Promise<CommitResult>;
137
169
 
138
- type ConflictType = 'content' | 'add-add' | 'modify-delete' | 'type-change' | 'rename-rename' | 'gitlink' | 'binary';
139
-
140
170
  interface DiffOptions {
141
171
  /** Resolve to a tree. Accepts ref name, oid, or 'HEAD'. */
142
172
  readonly from?: string;
@@ -175,6 +205,30 @@ interface FetchResult {
175
205
  }
176
206
  declare const fetch: (ctx: Context, opts?: FetchOptions) => Promise<FetchResult>;
177
207
 
208
+ interface FetchMissingOptions {
209
+ /** Object ids to fetch. Ones already present locally are skipped. */
210
+ readonly oids: ReadonlyArray<ObjectId>;
211
+ }
212
+ interface FetchMissingResult {
213
+ /** The promisor remote the objects were fetched from. */
214
+ readonly remote: string;
215
+ /** Objects the caller asked for. */
216
+ readonly requested: number;
217
+ /** Objects that were missing locally and got fetched. */
218
+ readonly fetched: number;
219
+ }
220
+ /**
221
+ * Fetch the named objects from the repository's promisor remote. Throws
222
+ * `NO_PROMISOR_REMOTE` when the repository is not a partial clone.
223
+ */
224
+ declare const fetchMissing: (ctx: Context, opts: FetchMissingOptions) => Promise<FetchMissingResult>;
225
+ /**
226
+ * `PromisorRemote` port implementation — the seam `readObject` calls on a
227
+ * miss. A non-partial repository yields `attempted: false` (rather than
228
+ * throwing) so `readObject` falls through to its normal `OBJECT_NOT_FOUND`.
229
+ */
230
+ declare const createPromisorRemote: (ctx: Context) => PromisorRemote;
231
+
178
232
  interface InitOptions {
179
233
  readonly initialBranch?: string;
180
234
  readonly bare?: boolean;
@@ -266,6 +320,8 @@ interface PushOptions {
266
320
  readonly refspecs?: ReadonlyArray<string>;
267
321
  readonly force?: boolean;
268
322
  readonly forceWithLease?: ObjectId | 'auto';
323
+ /** Skip the `pre-push` hook (git's `--no-verify`). */
324
+ readonly noVerify?: boolean;
269
325
  }
270
326
  interface PushedRef {
271
327
  readonly name: RefName;
@@ -281,6 +337,47 @@ interface PushResult {
281
337
  }
282
338
  declare const push: (ctx: Context, opts?: PushOptions) => Promise<PushResult>;
283
339
 
340
+ type ReflogAction = {
341
+ readonly action?: 'show';
342
+ readonly ref?: string;
343
+ } | {
344
+ readonly action: 'exists';
345
+ readonly ref: string;
346
+ } | {
347
+ readonly action: 'delete';
348
+ readonly ref: string;
349
+ readonly index: number;
350
+ readonly rewrite?: boolean;
351
+ } | {
352
+ readonly action: 'expire';
353
+ readonly ref?: string;
354
+ readonly all?: boolean;
355
+ readonly expire?: string;
356
+ readonly expireUnreachable?: string;
357
+ };
358
+ /** One reflog entry as `show` presents it: newest-first, with a selector. */
359
+ interface ReflogShowEntry {
360
+ readonly index: number;
361
+ readonly selector: string;
362
+ readonly entry: ReflogEntry;
363
+ }
364
+ type ReflogResult = {
365
+ readonly kind: 'show';
366
+ readonly ref: RefName;
367
+ readonly entries: ReadonlyArray<ReflogShowEntry>;
368
+ } | {
369
+ readonly kind: 'exists';
370
+ readonly exists: boolean;
371
+ } | {
372
+ readonly kind: 'expire';
373
+ readonly removed: number;
374
+ readonly kept: number;
375
+ } | {
376
+ readonly kind: 'delete';
377
+ readonly removed: ReflogEntry;
378
+ };
379
+ declare const reflog: (ctx: Context, opts?: ReflogAction) => Promise<ReflogResult>;
380
+
284
381
  type ResetMode = 'soft' | 'mixed' | 'hard';
285
382
  interface ResetOptions {
286
383
  readonly mode: ResetMode;
@@ -324,6 +421,37 @@ interface RmResult {
324
421
  */
325
422
  declare const rm: (ctx: Context, paths: ReadonlyArray<string>, opts?: RmOptions) => Promise<RmResult>;
326
423
 
424
+ type SparseCheckoutAction = {
425
+ readonly action: 'list';
426
+ } | {
427
+ readonly action: 'set';
428
+ readonly patterns: ReadonlyArray<string>;
429
+ readonly cone?: boolean;
430
+ readonly force?: boolean;
431
+ } | {
432
+ readonly action: 'add';
433
+ readonly patterns: ReadonlyArray<string>;
434
+ readonly force?: boolean;
435
+ } | {
436
+ readonly action: 'reapply';
437
+ readonly force?: boolean;
438
+ } | {
439
+ readonly action: 'disable';
440
+ readonly force?: boolean;
441
+ };
442
+ type SparseCheckoutResult = {
443
+ readonly kind: 'list';
444
+ readonly cone: boolean;
445
+ readonly patterns: ReadonlyArray<string>;
446
+ } | {
447
+ readonly kind: 'applied';
448
+ readonly cone: boolean;
449
+ readonly materialized: number;
450
+ readonly removed: number;
451
+ readonly retained: ReadonlyArray<FilePath>;
452
+ };
453
+ declare const sparseCheckout: (ctx: Context, opts: SparseCheckoutAction) => Promise<SparseCheckoutResult>;
454
+
327
455
  type ChangeKind = 'modified' | 'added' | 'deleted' | 'untracked';
328
456
  interface ChangeEntry {
329
457
  readonly kind: ChangeKind;
@@ -350,6 +478,24 @@ interface StatusResult {
350
478
  */
351
479
  declare const status: (ctx: Context) => Promise<StatusResult>;
352
480
 
481
+ type SubmodulesAction = {
482
+ readonly action?: 'list';
483
+ /** Tree-ish to walk. Default: `'HEAD'`. */
484
+ readonly ref?: string;
485
+ /** Descend into nested submodules' own `.gitmodules`. Default: `false`. */
486
+ readonly recursive?: boolean;
487
+ /**
488
+ * Cap on recursion depth. Default: `MAX_SUBMODULE_DEPTH`. Entries at exactly
489
+ * this depth are yielded but not recursed into.
490
+ */
491
+ readonly maxDepth?: number;
492
+ };
493
+ type SubmodulesResult = {
494
+ readonly kind: 'list';
495
+ readonly entries: ReadonlyArray<SubmoduleEntry>;
496
+ };
497
+ declare const submodules: (ctx: Context, opts?: SubmodulesAction) => Promise<SubmodulesResult>;
498
+
353
499
  type TagAction = {
354
500
  readonly kind: 'list';
355
501
  } | {
@@ -378,5 +524,5 @@ type TagResult = {
378
524
  };
379
525
  declare const tag: (ctx: Context, action: TagAction) => Promise<TagResult>;
380
526
 
381
- export { add, branch, checkout, clone, commit, diff, fetch, init, log, merge, push, reset, revParse, rm, status, tag };
382
- export type { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, StatusResult, TagAction, TagInfo, TagResult };
527
+ export { CatFileBatchEntry, SubmoduleEntry, add, branch, catFile, checkout, clone, commit, createPromisorRemote, diff, fetch, fetchMissing, init, log, merge, push, reflog, reset, revParse, rm, sparseCheckout, status, submodules, tag };
528
+ export type { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, CatFileInput, CatFileResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchMissingOptions, FetchMissingResult, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ReflogAction, ReflogResult, ReflogShowEntry, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, SparseCheckoutAction, SparseCheckoutResult, StatusResult, SubmodulesAction, SubmodulesResult, TagAction, TagInfo, TagResult };
@@ -1,5 +1,5 @@
1
- import { d as FilePath, b as Context, R as RefName, O as ObjectId } from '../chunks/context-o5TPfMB2.js';
2
- import { A as AuthorIdentity, T as TreeDiff } from '../chunks/diff-change-alGRzD_j.js';
1
+ import { d as FilePath, b as Context, R as RefName, O as ObjectId, m as PromisorRemote } from '../chunks/context-BORy7yXb.js';
2
+ import { C as CatFileBatchEntry, A as AuthorIdentity, s as TreeDiff, q as ReflogEntry, S as SubmoduleEntry } from '../chunks/reflog-entry-D9P2hCgv.js';
3
3
  import '../chunks/http-transport-DirKfK2S.js';
4
4
 
5
5
  interface AddOptions {
@@ -66,6 +66,30 @@ type BranchResult = {
66
66
  };
67
67
  declare const branch: (ctx: Context, action: BranchAction) => Promise<BranchResult>;
68
68
 
69
+ type ConflictType = 'content' | 'add-add' | 'modify-delete' | 'type-change' | 'rename-rename' | 'gitlink' | 'binary';
70
+
71
+ /**
72
+ * Tier-1 `catFile` command — wraps the streaming `catFileBatch` primitive in
73
+ * a request/response shape matching the other v2 commands (`submodules`,
74
+ * `log`, `reflog`). String ids are coerced at the boundary via
75
+ * `ObjectId.from`, which throws `INVALID_OBJECT_ID` on malformed input
76
+ * before any read happens.
77
+ *
78
+ * For streaming use cases, callers reach for `repo.primitives.catFileBatch`
79
+ * directly — see `docs/design/cat-file-batch.md` §2.
80
+ */
81
+
82
+ interface CatFileInput {
83
+ readonly ids: ReadonlyArray<ObjectId | string>;
84
+ /** Per-object byte cap; forwarded to the underlying `readObject` call. */
85
+ readonly maxBytes?: number;
86
+ }
87
+ interface CatFileResult {
88
+ readonly kind: 'batch';
89
+ readonly entries: ReadonlyArray<CatFileBatchEntry>;
90
+ }
91
+ declare const catFile: (ctx: Context, opts: CatFileInput) => Promise<CatFileResult>;
92
+
69
93
  interface CheckoutSwitchOptions {
70
94
  readonly target: string;
71
95
  readonly detach?: boolean;
@@ -100,6 +124,12 @@ interface CloneOptions {
100
124
  readonly resolver?: DnsResolver;
101
125
  readonly allowInsecure?: boolean;
102
126
  readonly allowPrivateNetworks?: boolean;
127
+ /**
128
+ * Partial-clone object filter (`blob:none`, `blob:limit=<n>`, `tree:<n>`).
129
+ * When set, the server omits the filtered objects, a promisor remote is
130
+ * recorded in `.git/config`, and omitted objects are lazy-fetched on read.
131
+ */
132
+ readonly filter?: string;
103
133
  }
104
134
  interface CloneResult {
105
135
  readonly path: FilePath;
@@ -117,6 +147,8 @@ interface CommitOptions {
117
147
  readonly committer?: AuthorIdentity;
118
148
  readonly allowEmpty?: boolean;
119
149
  readonly allowEmptyMessage?: boolean;
150
+ /** Skip the `pre-commit` and `commit-msg` hooks (git's `--no-verify`). */
151
+ readonly noVerify?: boolean;
120
152
  }
121
153
  interface CommitResult {
122
154
  readonly id: ObjectId;
@@ -135,8 +167,6 @@ interface CommitResult {
135
167
  */
136
168
  declare const commit: (ctx: Context, opts: CommitOptions) => Promise<CommitResult>;
137
169
 
138
- type ConflictType = 'content' | 'add-add' | 'modify-delete' | 'type-change' | 'rename-rename' | 'gitlink' | 'binary';
139
-
140
170
  interface DiffOptions {
141
171
  /** Resolve to a tree. Accepts ref name, oid, or 'HEAD'. */
142
172
  readonly from?: string;
@@ -175,6 +205,30 @@ interface FetchResult {
175
205
  }
176
206
  declare const fetch: (ctx: Context, opts?: FetchOptions) => Promise<FetchResult>;
177
207
 
208
+ interface FetchMissingOptions {
209
+ /** Object ids to fetch. Ones already present locally are skipped. */
210
+ readonly oids: ReadonlyArray<ObjectId>;
211
+ }
212
+ interface FetchMissingResult {
213
+ /** The promisor remote the objects were fetched from. */
214
+ readonly remote: string;
215
+ /** Objects the caller asked for. */
216
+ readonly requested: number;
217
+ /** Objects that were missing locally and got fetched. */
218
+ readonly fetched: number;
219
+ }
220
+ /**
221
+ * Fetch the named objects from the repository's promisor remote. Throws
222
+ * `NO_PROMISOR_REMOTE` when the repository is not a partial clone.
223
+ */
224
+ declare const fetchMissing: (ctx: Context, opts: FetchMissingOptions) => Promise<FetchMissingResult>;
225
+ /**
226
+ * `PromisorRemote` port implementation — the seam `readObject` calls on a
227
+ * miss. A non-partial repository yields `attempted: false` (rather than
228
+ * throwing) so `readObject` falls through to its normal `OBJECT_NOT_FOUND`.
229
+ */
230
+ declare const createPromisorRemote: (ctx: Context) => PromisorRemote;
231
+
178
232
  interface InitOptions {
179
233
  readonly initialBranch?: string;
180
234
  readonly bare?: boolean;
@@ -266,6 +320,8 @@ interface PushOptions {
266
320
  readonly refspecs?: ReadonlyArray<string>;
267
321
  readonly force?: boolean;
268
322
  readonly forceWithLease?: ObjectId | 'auto';
323
+ /** Skip the `pre-push` hook (git's `--no-verify`). */
324
+ readonly noVerify?: boolean;
269
325
  }
270
326
  interface PushedRef {
271
327
  readonly name: RefName;
@@ -281,6 +337,47 @@ interface PushResult {
281
337
  }
282
338
  declare const push: (ctx: Context, opts?: PushOptions) => Promise<PushResult>;
283
339
 
340
+ type ReflogAction = {
341
+ readonly action?: 'show';
342
+ readonly ref?: string;
343
+ } | {
344
+ readonly action: 'exists';
345
+ readonly ref: string;
346
+ } | {
347
+ readonly action: 'delete';
348
+ readonly ref: string;
349
+ readonly index: number;
350
+ readonly rewrite?: boolean;
351
+ } | {
352
+ readonly action: 'expire';
353
+ readonly ref?: string;
354
+ readonly all?: boolean;
355
+ readonly expire?: string;
356
+ readonly expireUnreachable?: string;
357
+ };
358
+ /** One reflog entry as `show` presents it: newest-first, with a selector. */
359
+ interface ReflogShowEntry {
360
+ readonly index: number;
361
+ readonly selector: string;
362
+ readonly entry: ReflogEntry;
363
+ }
364
+ type ReflogResult = {
365
+ readonly kind: 'show';
366
+ readonly ref: RefName;
367
+ readonly entries: ReadonlyArray<ReflogShowEntry>;
368
+ } | {
369
+ readonly kind: 'exists';
370
+ readonly exists: boolean;
371
+ } | {
372
+ readonly kind: 'expire';
373
+ readonly removed: number;
374
+ readonly kept: number;
375
+ } | {
376
+ readonly kind: 'delete';
377
+ readonly removed: ReflogEntry;
378
+ };
379
+ declare const reflog: (ctx: Context, opts?: ReflogAction) => Promise<ReflogResult>;
380
+
284
381
  type ResetMode = 'soft' | 'mixed' | 'hard';
285
382
  interface ResetOptions {
286
383
  readonly mode: ResetMode;
@@ -324,6 +421,37 @@ interface RmResult {
324
421
  */
325
422
  declare const rm: (ctx: Context, paths: ReadonlyArray<string>, opts?: RmOptions) => Promise<RmResult>;
326
423
 
424
+ type SparseCheckoutAction = {
425
+ readonly action: 'list';
426
+ } | {
427
+ readonly action: 'set';
428
+ readonly patterns: ReadonlyArray<string>;
429
+ readonly cone?: boolean;
430
+ readonly force?: boolean;
431
+ } | {
432
+ readonly action: 'add';
433
+ readonly patterns: ReadonlyArray<string>;
434
+ readonly force?: boolean;
435
+ } | {
436
+ readonly action: 'reapply';
437
+ readonly force?: boolean;
438
+ } | {
439
+ readonly action: 'disable';
440
+ readonly force?: boolean;
441
+ };
442
+ type SparseCheckoutResult = {
443
+ readonly kind: 'list';
444
+ readonly cone: boolean;
445
+ readonly patterns: ReadonlyArray<string>;
446
+ } | {
447
+ readonly kind: 'applied';
448
+ readonly cone: boolean;
449
+ readonly materialized: number;
450
+ readonly removed: number;
451
+ readonly retained: ReadonlyArray<FilePath>;
452
+ };
453
+ declare const sparseCheckout: (ctx: Context, opts: SparseCheckoutAction) => Promise<SparseCheckoutResult>;
454
+
327
455
  type ChangeKind = 'modified' | 'added' | 'deleted' | 'untracked';
328
456
  interface ChangeEntry {
329
457
  readonly kind: ChangeKind;
@@ -350,6 +478,24 @@ interface StatusResult {
350
478
  */
351
479
  declare const status: (ctx: Context) => Promise<StatusResult>;
352
480
 
481
+ type SubmodulesAction = {
482
+ readonly action?: 'list';
483
+ /** Tree-ish to walk. Default: `'HEAD'`. */
484
+ readonly ref?: string;
485
+ /** Descend into nested submodules' own `.gitmodules`. Default: `false`. */
486
+ readonly recursive?: boolean;
487
+ /**
488
+ * Cap on recursion depth. Default: `MAX_SUBMODULE_DEPTH`. Entries at exactly
489
+ * this depth are yielded but not recursed into.
490
+ */
491
+ readonly maxDepth?: number;
492
+ };
493
+ type SubmodulesResult = {
494
+ readonly kind: 'list';
495
+ readonly entries: ReadonlyArray<SubmoduleEntry>;
496
+ };
497
+ declare const submodules: (ctx: Context, opts?: SubmodulesAction) => Promise<SubmodulesResult>;
498
+
353
499
  type TagAction = {
354
500
  readonly kind: 'list';
355
501
  } | {
@@ -378,5 +524,5 @@ type TagResult = {
378
524
  };
379
525
  declare const tag: (ctx: Context, action: TagAction) => Promise<TagResult>;
380
526
 
381
- export { add, branch, checkout, clone, commit, diff, fetch, init, log, merge, push, reset, revParse, rm, status, tag };
382
- export type { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, StatusResult, TagAction, TagInfo, TagResult };
527
+ export { CatFileBatchEntry, SubmoduleEntry, add, branch, catFile, checkout, clone, commit, createPromisorRemote, diff, fetch, fetchMissing, init, log, merge, push, reflog, reset, revParse, rm, sparseCheckout, status, submodules, tag };
528
+ export type { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, CatFileInput, CatFileResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchMissingOptions, FetchMissingResult, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ReflogAction, ReflogResult, ReflogShowEntry, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, SparseCheckoutAction, SparseCheckoutResult, StatusResult, SubmodulesAction, SubmodulesResult, TagAction, TagInfo, TagResult };
@@ -1,9 +1,9 @@
1
- import { O as OpenRepositoryOptions, R as Repository } from './chunks/repository-23evW2h-.cjs';
1
+ import { O as OpenRepositoryOptions, R as Repository } from './chunks/repository-BqibvTOu.cjs';
2
2
  export { AdapterSet, consoleProgress, detectRuntime, isBrowser, isNode, noopProgress } from './index.cjs';
3
- export { P as ProgressReporter } from './chunks/context-D84z1i5F.cjs';
3
+ export { P as ProgressReporter } from './chunks/context-CMrHCVwK.cjs';
4
4
  import './commands/index.cjs';
5
- import './chunks/diff-change-Bm1zvVsC.cjs';
6
- import './chunks/write-tree-DVp0RJ_r.cjs';
5
+ import './chunks/reflog-entry-BIf-zt__.cjs';
6
+ import './chunks/write-tree-B8G6kgTy.cjs';
7
7
  import './chunks/http-transport-DirKfK2S.cjs';
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { O as OpenRepositoryOptions, R as Repository } from './chunks/repository-BT7Xq1kJ.js';
1
+ import { O as OpenRepositoryOptions, R as Repository } from './chunks/repository-C4rN09Am.js';
2
2
  export { AdapterSet, consoleProgress, detectRuntime, isBrowser, isNode, noopProgress } from './index.js';
3
- export { P as ProgressReporter } from './chunks/context-o5TPfMB2.js';
3
+ export { P as ProgressReporter } from './chunks/context-BORy7yXb.js';
4
4
  import './commands/index.js';
5
- import './chunks/diff-change-alGRzD_j.js';
6
- import './chunks/write-tree-DNjhjS3t.js';
5
+ import './chunks/reflog-entry-D9P2hCgv.js';
6
+ import './chunks/write-tree-BXCDChvv.js';
7
7
  import './chunks/http-transport-DirKfK2S.js';
8
8
 
9
9
  /**
@@ -1,9 +1,9 @@
1
- import { f as FileSystem, H as HashService, C as Compressor, P as ProgressReporter } from './chunks/context-D84z1i5F.cjs';
2
- export { A as AuthStrategy, a as AuthorIdentity, b as Context, c as CreateContextParts, D as DirEntry, e as FileStat, g as Hasher, L as Logger, h as RepositoryConfig, i as RepositoryLayout, j as createContext, n as noopLogger, w as wrapLoggerSanitizer } from './chunks/context-D84z1i5F.cjs';
1
+ import { f as FileSystem, H as HashService, C as Compressor, P as ProgressReporter } from './chunks/context-CMrHCVwK.cjs';
2
+ export { A as AuthStrategy, a as AuthorIdentity, b as Context, c as CreateContextParts, D as DirEntry, e as FileStat, g as Hasher, h as HookName, i as HookRequest, j as HookResult, k as HookRunner, L as Logger, l as PromisorFetchOutcome, m as PromisorRemote, n as RepositoryConfig, o as RepositoryLayout, p as createContext, q as noopLogger, w as wrapLoggerSanitizer } from './chunks/context-CMrHCVwK.cjs';
3
3
  import { b as HttpTransport } from './chunks/http-transport-DirKfK2S.cjs';
4
4
  export { H as HttpRequest, a as HttpResponse } from './chunks/http-transport-DirKfK2S.cjs';
5
- export { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, StatusResult, TagAction, TagInfo, TagResult, add, branch, checkout, clone, commit, diff, fetch, init, log, merge, push, reset, revParse, rm, status, tag } from './commands/index.cjs';
6
- import './chunks/diff-change-Bm1zvVsC.cjs';
5
+ export { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, CatFileInput, CatFileResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchMissingOptions, FetchMissingResult, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ReflogAction, ReflogResult, ReflogShowEntry, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, SparseCheckoutAction, SparseCheckoutResult, StatusResult, SubmodulesAction, SubmodulesResult, TagAction, TagInfo, TagResult, add, branch, catFile, checkout, clone, commit, createPromisorRemote, diff, fetch, fetchMissing, init, log, merge, push, reflog, reset, revParse, rm, sparseCheckout, status, submodules, tag } from './commands/index.cjs';
6
+ export { C as CatFileBatchEntry, S as SubmoduleEntry } from './chunks/reflog-entry-BIf-zt__.cjs';
7
7
 
8
8
  /**
9
9
  * The four adapter ports the facade plumbs into the Context. Each runtime
@@ -1,9 +1,9 @@
1
- import { f as FileSystem, H as HashService, C as Compressor, P as ProgressReporter } from './chunks/context-o5TPfMB2.js';
2
- export { A as AuthStrategy, a as AuthorIdentity, b as Context, c as CreateContextParts, D as DirEntry, e as FileStat, g as Hasher, L as Logger, h as RepositoryConfig, i as RepositoryLayout, j as createContext, n as noopLogger, w as wrapLoggerSanitizer } from './chunks/context-o5TPfMB2.js';
1
+ import { f as FileSystem, H as HashService, C as Compressor, P as ProgressReporter } from './chunks/context-BORy7yXb.js';
2
+ export { A as AuthStrategy, a as AuthorIdentity, b as Context, c as CreateContextParts, D as DirEntry, e as FileStat, g as Hasher, h as HookName, i as HookRequest, j as HookResult, k as HookRunner, L as Logger, l as PromisorFetchOutcome, m as PromisorRemote, n as RepositoryConfig, o as RepositoryLayout, p as createContext, q as noopLogger, w as wrapLoggerSanitizer } from './chunks/context-BORy7yXb.js';
3
3
  import { b as HttpTransport } from './chunks/http-transport-DirKfK2S.js';
4
4
  export { H as HttpRequest, a as HttpResponse } from './chunks/http-transport-DirKfK2S.js';
5
- export { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, StatusResult, TagAction, TagInfo, TagResult, add, branch, checkout, clone, commit, diff, fetch, init, log, merge, push, reset, revParse, rm, status, tag } from './commands/index.js';
6
- import './chunks/diff-change-alGRzD_j.js';
5
+ export { AddOptions, AddResult, BranchAction, BranchInfo, BranchResult, CatFileInput, CatFileResult, ChangeEntry, ChangeKind, CheckoutOptions, CheckoutResult, CloneOptions, CloneResult, CommitOptions, CommitResult, DiffOptions, FetchMissingOptions, FetchMissingResult, FetchOptions, FetchResult, InitOptions, InitResult, LogEntry, LogOptions, MergeOptions, MergeResult, PushOptions, PushResult, ReflogAction, ReflogResult, ReflogShowEntry, ResetMode, ResetOptions, ResetResult, RmOptions, RmResult, SparseCheckoutAction, SparseCheckoutResult, StatusResult, SubmodulesAction, SubmodulesResult, TagAction, TagInfo, TagResult, add, branch, catFile, checkout, clone, commit, createPromisorRemote, diff, fetch, fetchMissing, init, log, merge, push, reflog, reset, revParse, rm, sparseCheckout, status, submodules, tag } from './commands/index.js';
6
+ export { C as CatFileBatchEntry, S as SubmoduleEntry } from './chunks/reflog-entry-D9P2hCgv.js';
7
7
 
8
8
  /**
9
9
  * The four adapter ports the facade plumbs into the Context. Each runtime